sql server 2005 T-SQL ALTER SCHEMA (Transact-SQL)

在架構之間傳輸安全對象。

主題鏈接圖標Transact-SQL 語法約定

ALTER SCHEMA schema_name TRANSFER securable_name
schema_name

當前數據庫中的架構名稱,安全對象將移入其中。其數據類型不能爲 SYSINFORMATION_SCHEMA

securable_name

要移入架構中的架構包含安全對象的一部分或兩部分名稱。

在 SQL Server 2005 中,用戶與架構完全分離。有關詳細信息,請參閱用戶架構分離

ALTER SCHEMA 僅可用於在同一數據庫中的架構之間移動安全對象。若要更改或刪除架構中的安全對象,請使用特定於該安全對象的 ALTER 或 DROP 語句。

如果對 securable_name 使用了由一部分組成的名稱,則將使用當前生效的名稱解析規則查找該安全對象。

將安全對象移入新架構時,將刪除與該安全對象關聯的全部權限。如果已顯式設置安全對象的所有者,則該所有者保持不變。如果安全對象的所有者已設置爲 SCHEMA OWNER,則該所有者將保持爲 SCHEMA OWNER;但移動之後,SCHEMA OWNER 將解析爲新架構的所有者。新所有者的 principal_id 將爲 NULL。

注意:
在 SQL Server 2005 中,架構的行爲與早期版本的 SQL Server 中的行爲不同。假設架構與數據庫用戶等價的代碼不能返回正確的結果。在曾經使用過以下任何 DDL 語句的數據庫中,不應當使用舊目錄視圖(包括 sysobjects):CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION。在曾經使用過這些語句中的任意一個語句的數據庫中,必須使用新的目錄視圖。新的目錄視圖將採用在 SQL Server 2005 中引入的使主體和架構分離的方法。有關目錄視圖的詳細信息,請參閱目錄視圖 (Transact-SQL)

若要從另一個架構中傳輸安全對象,當前用戶必須擁有對該安全對象(非架構)的 CONTROL 權限,並擁有對目標架構的 ALTER 權限。

如果已爲安全對象指定 EXECUTE AS OWNER,且所有者已設置爲 SCHEMA OWNER,則用戶還必須擁有對目標架構所有者的 IMPERSONATION 權限。

在移動安全對象後,將刪除與所傳輸的安全對象相關聯的所有權限。

以下示例通過將表 Address 從架構 Person 傳輸到 HumanResources 架構來修改該架構。

USE AdventureWorks;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章