將安全帳戶作為當(dāng)前數(shù)據(jù)庫中現(xiàn)有 Microsoft® SQL Server™ 數(shù)據(jù)庫角色的成員進(jìn)行添加。
sp_addrolemember [ @rolename = ] 'role' ,
[ @membername = ] 'security_account'
[@rolename =] 'role'
當(dāng)前數(shù)據(jù)庫中 SQL Server 角色的名稱。role 的數(shù)據(jù)類型為 sysname,沒有默認(rèn)值。
[@membername =] 'security_account'
添加到角色的安全帳戶。security_account 的數(shù)據(jù)類型為 sysname,沒有默認(rèn)值。security_account 可以是所有有效的 SQL Server 用戶、SQL Server 角色或是所有已授權(quán)訪問當(dāng)前數(shù)據(jù)庫的 Microsoft Windows NT® 用戶或組。當(dāng)添加 Windows NT 用戶或組時,請指定在數(shù)據(jù)庫中用來識別該 Windows NT 用戶或組的名稱(使用 sp_grantdbaccess 添加)。
0(成功)或 1(失?。?/P>
當(dāng)使用 sp_addrolemember 將安全帳戶添加到角色時,新成員將繼承所有應(yīng)用到角色的權(quán)限。
在添加 SQL Server 角色,使其成為另一個 SQL Server 角色的成員時,不能創(chuàng)建循環(huán)角色。例如,如果 YourRole 已經(jīng)是 MyRole 的成員,就不能將 MyRole 添加成為 YourRole 的成員。此外,也不能將固定數(shù)據(jù)庫或固定服務(wù)器角色,或者 dbo 添加到其他角色。例如,不能將 db_owner 固定數(shù)據(jù)庫角色添加成為用戶定義的角色 YourRole 的成員。
只能使用 sp_addrolemember 將成員添加到 SQL Server 角色。使用 sp_addsrvrolemember 將成員添加到固定服務(wù)器角色。在 SQL Server 中,將成員添加到 Windows NT® 組是不可能的。
在用戶定義的事務(wù)中不能使用 sp_addrolemember。
只有 sysadmin 固定服務(wù)器角色和 db_owner 固定數(shù)據(jù)庫角色中的成員可以執(zhí)行 sp_addrolemember,以將成員添加到固定數(shù)據(jù)庫角色。角色所有者可以執(zhí)行 sp_addrolemember,將成員添加到自己所擁有的任何 SQL Server 角色。db_securityadmin 固定數(shù)據(jù)庫角色的成員可以將用戶添加到任何用戶定義的角色。
下面的示例將 Windows NT 用戶 Corporate\JeffL 添加到 Sales 數(shù)據(jù)庫,使其成為用戶 Jeff。然后,再將 Jeff 添加到 Sales 數(shù)據(jù)庫的 Sales_Managers 角色中。
說明 由于 Corporate\JeffL 在 Sales 數(shù)據(jù)庫中被當(dāng)作是用戶 Jeff,所以必須使用 sp_addrolemember 來指定用戶名 Jeff。
USE Sales
GO
EXEC sp_grantdbaccess 'Corporate\JeffL', 'Jeff'
GO
EXEC sp_addrolemember 'Sales_Managers', 'Jeff'
下面的示例將 SQL Server 用戶 Michael 添加到當(dāng)前數(shù)據(jù)庫中的 Engineering 角色。
EXEC sp_addrolemember 'Engineering', 'Michael'
相關(guān)文章