分享方式:


sp_changedbowner (Transact-SQL)

適用於:SQL Server

變更目前資料庫的擁有者。

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 ALTER AUTHORIZATION

Transact-SQL 語法慣例

語法

sp_changedbowner
    [ @loginame = ] N'loginame'
    [ , [ @map = ] 'map' ]
[ ; ]

引數

[ @loginame = ] N'loginame'

目前資料庫之新擁有者的登入標識碼。 @loginame為 sysname,沒有預設值。 @loginame必須是現有的 SQL Server 登入或 Windows 使用者。 如果目前資料庫的擁有者已透過資料庫內現有的使用者安全性帳戶存取資料庫,則@loginame無法成為資料庫的擁有者。 若要避免這種情況,請先卸除目前資料庫內的使用者。

[ @map = ] 'map'

此參數已被取代,而且會維護腳本的回溯相容性。

傳回碼值

0 (成功) 或 1 (失敗)。

備註

執行之後 sp_changedbowner ,新的擁有者稱為 dbo 資料庫內的使用者。 使用者 dbo 具有隱含許可權,可執行資料庫中的所有活動。

無法變更、 modeltempdb 系統資料庫的擁有者master

若要顯示有效 @loginame 值的清單,請執行 sp_helplogins 預存程式。

只使用 @loginame 參數執行sp_changedbowner會將資料庫擁有權變更為@loginame

您可以使用語句來變更任何安全性實體 ALTER AUTHORIZATION 的擁有者。 如需詳細資訊,請參閱 ALTER AUTHORIZATION

權限

需要資料庫的 TAKE OWNERSHIP 權限。 如果新的擁有者在資料庫中有對應的使用者,則需要 IMPERSONATE 登入的許可權,否則需要 CONTROL SERVER 伺服器的許可權。

範例

下列範例會讓登入 Albert 成為目前資料庫的擁有者。

EXEC sp_changedbowner 'Albert';