用於變更當前數據庫中表、視圖、存儲過程等對象的擁有者(Schema/Principal)。語法:
sp_changeobjectowner
[ @objname = ] 'object_name',
[ @newowner = ] 'new_owner'
object_name:現有對象名,格式 [schema.]object,類型 nvarchar(517)。new_owner:目標安全主體(用戶/角色/Windows 組),類型 sysname,必須存在於當前數據庫。sp_helprotect 導出對象當前 ACL。EXEC sp_changeobjectowner 'authors', 'CorporateGeorgeW'。僅限以下角色成員執行:
sysadmin 固定服務器角色db_owner 固定數據庫角色db_ddladmin 和 db_securityadmin 固定數據庫角色的用戶若需變更整個數據庫擁有者,使用 sp_changedbowner。
-- 將表 authors 擁有者改為 CorporateGeorgeW
EXEC sp_changeobjectowner 'authors', 'CorporateGeorgeW';
-- 將存儲過程 ychw.proc_Subject512_Function 擁有者改為 dbo
EXEC sp_changeobjectowner 'ychw.proc_Subject512_Function', 'dbo';