更改當(dāng)前數(shù)據(jù)庫(kù)的所有者。
sp_changedbowner [ @loginame = ] 'login'
[ , [ @map = ] remap_alias_flag ]
[@loginame =] 'login'
當(dāng)前數(shù)據(jù)庫(kù)新所有者的登錄 ID。login 的數(shù)據(jù)類型為 sysname,沒(méi)有默認(rèn)值。login 必須是已存在的 Microsoft® SQL Server™ 登錄或 Microsoft Windows NT® 用戶。如果 login 通過(guò)當(dāng)前數(shù)據(jù)庫(kù)內(nèi)的現(xiàn)有別名或用戶安全帳戶已擁有訪問(wèn)該數(shù)據(jù)庫(kù)的權(quán)限,則不能成為該數(shù)據(jù)庫(kù)的所有者。為了避免這種情況,應(yīng)先除去當(dāng)前數(shù)據(jù)庫(kù)中的別名或用戶。
[@map =] remap_alias_flag
值為 true 或 false,表示舊數(shù)據(jù)庫(kù)所有者 (dbo) 的現(xiàn)有別名是映射到當(dāng)前數(shù)據(jù)庫(kù)的新所有者還是要除去。remap_alias_flag 的數(shù)據(jù)類型為 varchar(5),默認(rèn)值為 NULL,表示舊 dbo 的任何現(xiàn)有別名均映射到當(dāng)前數(shù)據(jù)庫(kù)的新所有者。false 表示除去舊數(shù)據(jù)庫(kù)所有者的現(xiàn)有別名。
0(成功)或 1(失?。?/P>
執(zhí)行 sp_changedbowner 之后,新所有者稱為數(shù)據(jù)庫(kù)中的 dbo 用戶。dbo 擁有執(zhí)行數(shù)據(jù)庫(kù)中所有活動(dòng)的暗示性權(quán)限。
不能更改 master、model 或 tempdb 系統(tǒng)數(shù)據(jù)庫(kù)的所有者。
若要顯示有效 login 值的列表,請(qǐng)執(zhí)行 sp_helplogins 存儲(chǔ)過(guò)程。
執(zhí)行只有 login 參數(shù)的 sp_changedbowner 會(huì)將數(shù)據(jù)庫(kù)所有權(quán)改為 login,并將先前別名為 dbo 的用戶別名映射到新數(shù)據(jù)庫(kù)所有者。
只有 sysadmin 固定服務(wù)器角色成員的成員或當(dāng)前數(shù)據(jù)庫(kù)的所有者才能執(zhí)行 sp_changedbowner。
下面的示例使用戶 Albert 成為當(dāng)前數(shù)據(jù)庫(kù)的所有者,并將舊數(shù)據(jù)庫(kù)所有者的現(xiàn)有別名映射到 Albert。
EXEC sp_changedbowner 'Albert'
相關(guān)文章