程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 更改數據庫對象所有者的方法

更改數據庫對象所有者的方法

編輯:關於SqlServer

sp_changeobjectowner更改當前數據庫中對象的所有者。

語法:

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

object'當前數據庫中現有的表、視圖或存儲過程的名稱。

object 的數據類型為 nvarchar(517),沒有默認值。object 可用現有對象所有者限定,格式為:

existing_owner.object。[@newowner =] 'owner'

即將成為對象的新所有者的安全帳戶的名稱。

owner 的數據類型為 sysname,沒有默認值。owner 必須是當前數據庫中有效的 Microsoft® SQL Server™ 用戶或角色或 Microsoft Windows NT® 用戶或組。指定 Windows NT 用戶或組時,請指定 Windows NT 用戶或組在數據庫中已知的名稱(用 sp_grantdbaccess 添加)。返回代碼值0(成功)或 1(失敗)注釋對象所有者(或擁有對象的組或角色的成員)對對象有特殊的權限。

對象所有者可以執行任何與對象有關的 Transact-SQL 語句(例如 INSERT、UPDATE、DELETE、SELECT 或 EXECUTE),也可以管理對象的權限。

如果擁有對象的安全帳戶必須要除去,但同時要保留該對象,請使用 sp_changeobjectowner 更改對象所有者。

該過程從對象中刪除所有現有權限。在運行 sp_changeobjectowner 之後,需要重新應用要保留的任何權限。由於這個原因,建議在運行 sp_changeobjectowner 之前,編寫現有權限的腳本。一旦更改了對象的所有權,可能要使用該腳本重新應用權限。在運行該腳本之前需要在權限腳本中修改對象所有者。有關編寫數據庫腳本的更多信息,請參見編寫數據庫文檔和腳本。

可以使用 sp_changedbowner 更改數據庫的所有者。權限只有 sysadmin 固定服務器角色和 db_owner 固定數據庫角色成員,或既是 db_ddladmin 固定數據庫角色又是 db_securityadmin 固定數據庫角色的成員,才能執行 sp_changeobjectowner。

示例下面的示例將 authors 表的所有者改為:

CorporateGeorgeW。EXEC sp_changeobjectowner
'authors', 'CorporateGeorgeW'
exec sp_changeobjectowner 'ychw.
proc_Subject512_Function', 'dbo'
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved