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。

ms173423.Caution(zh-tw,SQL.90).gif注意:
在 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 權限。

移動要傳送的安全性實體時,將會卸除與該安全性實體相關聯的所有權限。

範例

下列範例會將 Person 結構描述中的 Address 資料表傳送到 HumanResources 結構描述中,來修改這個結構描述。

USE AdventureWorks;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO

請參閱

參考

CREATE SCHEMA (Transact-SQL)
DROP SCHEMA (Transact-SQL)
EVENTDATA (Transact-SQL)

其他資源

使用者結構描述分隔

說明及資訊

取得 SQL Server 2005 協助