更改資料庫物件的所有者

2021-03-31 18:47:04 字數 1470 閱讀 7899

更改當前資料庫中物件的所有者。

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

引數[@objname=]'object'

當前資料庫中現有的表、檢視或儲存過程的名稱。object 的資料型別為nvarchar(517),沒有預設值。object 可用現有物件所有者限定,格式為 existing_owner.object。

[@newowner=]'owner'

即將成為物件的新所有者的安全帳戶的名稱。owner 的資料型別為sysname,沒有預設值。owner 必須是當前資料庫中有效的 microsoft® sqlserver™ 使用者或角色或 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表的所有者改為corporate/geew

exec sp_changeobjectowner 'authors', 'corporate/geew'

exec sp_changeobjectowner 'ychw.proc_subject512_function', 'dbo'

更改資料庫物件所有者

declare cur cursor for select name from sysobjects where uid user id net4646608 and xtype u or xtype p declare name sysname declare sqlstr varchar 500...

更改資料庫所有者的物件

功能說明 成批更改資料庫所有者的物件 declare name as nvarchar 128 declare owner as nvarchar 128 declare ownername as nvarchar 128 declare curobject cursor for select na...

更改資料庫對像的所有者

libin ftsafe 子陌紅塵 sp changeobjectowner 更改當前資料庫中物件的所有者。語法sp changeobjectowner objname object newowner owner sp changedbowner 更改當前資料庫的所有者。語法sp changedbo...