sp_changeobjectowner (Transact-SQL)

適用於:SQL Server

變更目前資料庫中對象的擁有者。

重要

此預存程式僅適用於 Microsoft SQL Server 2000 (8.x) 中可用的物件。 SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 ALTER SCHEMAALTER AUTHORIZATIONsp_changeobjectowner變更架構和擁有者。 為了保留與舊版 SQL Server 的相容性,此預存程式只會在目前擁有者和新擁有者擁有與資料庫用戶名稱相同的架構時變更對象擁有者。

重要

已將新的許可權需求新增至這個預存程式。

Transact-SQL 語法慣例

語法

  
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'  

引數

[ @objname = ] 'object' 這是目前資料庫中現有數據表、檢視表、用戶定義函數或預存程式的名稱。 對像是 nvarchar(776),沒有預設值。 物件可以與現有對象的擁有者限定,格式為 existing_owner。如果架構及其擁有者具有相同的名稱,則為 object。

[ @newowner = ] 'owner_ ' 這是將成為物件新擁有者的安全性帳戶名稱。 ownersysname,沒有預設值。 擁有者 必須是具有目前數據庫存取權的有效資料庫用戶、伺服器角色、Microsoft Windows 登入或 Windows 群組。 如果新的擁有者是沒有對應資料庫層級主體的 Windows 使用者或 Windows 群組,將會建立資料庫使用者。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_changeobjectowner會從物件中移除所有現有的許可權。 您必須重新套用您想要在執行sp_changeobjectowner之後保留的任何許可權。 因此,建議您在執行sp_changeobjectowner之前,先編寫現有許可權的腳本。 變更物件的擁有權之後,您可以使用腳本重新套用許可權。 您必須先修改許可權文本中的對象擁有者,才能執行。

若要變更安全性實體的擁有者,請使用 ALTER AUTHORIZATION。 若要變更架構,請使用 ALTER SCHEMA。

權限

需要db_owner固定資料庫角色的成員資格,或db_ddladmin固定資料庫角色和db_securityadmin固定資料庫角色的成員資格,以及物件的CONTROL許可權。

範例

下列範例會將資料表的 authors 擁有者變更為 Corporate\GeorgeW

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';  
GO  

另請參閱

ALTER SCHEMA (Transact-SQL)
ALTER DATABASE (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sp_changedbowner (Transact-SQL)
系統預存程序 (Transact-SQL)