sp_changedbowner (Transact-SQL)
變更目前資料庫的擁有者。
語法
sp_changedbowner [ @loginame = ] 'login'
[ , [ @map= ] remap_alias_flag ]
引數
- [ @loginame= ] 'login'
這是目前資料庫新擁有者的登入識別碼。login 是 sysname,沒有預設值。login 必須是現有的 SQL Server 登入或 Microsoft Windows 使用者。如果 login 已經透過資料庫中現有的別名或使用者安全性帳戶來存取資料庫,就不能成為目前資料庫的擁有者。若要防止這種情況,請先卸除目前資料庫的別名或使用者。
- [ @map= ] remap_alias_flag
這是 true 或 false 值,這個值表示指派給舊資料庫擁有者 (dbo) 的現有別名,是對應至目前資料庫的新擁有者,還是已經卸除。remap_alias_flag 是 varchar(5),預設值是 NULL。這表示舊 dbo 的所有現有別名,都對應至目前資料庫的新擁有者。false 表示舊資料庫擁有者的現有別名已經卸除。
傳回碼值
0 (成功) 或 1 (失敗)
備註
在 sp_changedbowner 執行之後,新擁有者在資料庫中就成為 dbo 使用者。dbo 具有隱含權限,可以執行資料庫中所有的活動。
master、model 或 tempdb 系統資料庫的擁有者不能變更。
若要顯示有效的 login 值清單,請執行 sp_helplogins 預存程序。
只設定 login 參數來執行 sp_changedbowner,會將資料庫擁有權變更為 login,並且將先前指派給 dbo 的使用者別名,對應至這個新資料庫擁有者。
不過,您也可以利用 ALTER AUTHORIZATION 陳述式來變更任何安全性實體的擁有者。如需詳細資訊,請參閱<ALTER AUTHORIZATION (Transact-SQL)>。
權限
需要資料庫的 TAKE OWNERSHIP 權限。如果新擁有者在資料庫有對應的使用者,則需要登入的 IMPERSONATE 權限,否則就需要伺服器的 CONTROL SERVER 權限。
範例
下列範例是將登入 Albert
當作目前資料庫的擁有者,並且對應至指派給舊資料庫擁有者的 Albert
現有別名
EXEC sp_changedbowner 'Albert'
請參閱
參考
安全性預存程序 (Transact-SQL)
CREATE DATABASE (Transact-SQL)
sp_dropalias (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpdb (Transact-SQL)
sp_helplogins (Transact-SQL)
系統預存程序 (Transact-SQL)