更改当前数据库中用户安全帐户的角色成员资格。提供该过程是为了向后兼容。Microsoft® SQL Server™ 7.0 版使用角色而不是组。使用 sp_addrolemember 代替。
sp_changegroup [ @grpname = ] 'role'
, [ @username = ] 'user'
[@grpname =] 'role'
是添加用户的角色。role 的数据类型为 sysname,没有默认值。role 必须存在于当前数据库中。
[@username =] 'user'
向角色添加的用户。user 的数据类型为 sysname,没有默认值。用户在当前数据库中必须已存在。指定 Windows NT 用户时,请指定 Windows NT 用户在数据库中已知的名称(用 sp_grantdbaccess 添加)。
0(成功)或 1(失败)
角色提供一种管理应用于角色成员权限的机制。将用户添加到角色时,用户获得为该角色定义的权限。
执行 sp_changegroup 时,user 的安全帐户作为 role 的成员添加,并从所有其它角色中删除。sp_addrolemember 和 sp_droprolemember 可用来更改单个角色中的角色成员资格,而不影响在其它角色中的成员资格。
使用 sp_adduser 授予新数据库用户访问数据库权限的同时,将新数据库用户可添加到角色。
如果没有通过 sp_addrolemember 明确地将用户添加到其它角色,则每个用户均为默认角色 public 的成员。
sp_changegroup 不能在用户定义的事务中执行。
sysadmin 固定服务器角色、db_owner 和 db_securityadmin 固定数据库角色成员能够为该数据库中的任何角色执行 sp_changegroup。
角色所有者可以执行 sp_changegroup。角色所有者必须既拥有该用户的新角色,又拥有其当前角色。
下面的示例让用户 Albert 成为 developers 角色的成员。
EXEC sp_changegroup 'developers', 'Albert'