更改物件的所有者

2021-04-17 03:01:05 字數 1273 閱讀 5665

sp_changeobjectowner

更改當前資料庫中物件的

所有者。

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

引數[@objname=]'object'

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

所有者限定,格式為existing_owner.object。

[@newowner=]'owner'

即將成為物件的新

所有者的帳戶的名稱。owner的資料型別為sysname,沒有預設值。owner必須是當前資料庫中有效的microsoft®™使用者或角色或microsoftwindowsnt®使用者或組。指定windowsnt使用者或組時,請指定windowsnt使用者或組在資料庫中已知的名稱(用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/georgew。

execsp_changeobjectowner'authors','corporate/georgew'execsp_changeobjectowner'ychw.proc_subject512_function','dbo'

如何更改SQL Server物件所有者

執行這個語句,就可以把當前庫的所有表的所有者改為dbo exec sp msforeachtable sp changeobjectowner dbo 如果是要使用者表 儲存過程 檢視 觸發器 自定義函式一齊改,則用游標 不要理會錯誤提示 declare tb cursor local for se...

更改資料庫物件所有者

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...