Transact-SQL 参考

sp_changegroup

更改当前数据库中用户安全帐户的角色成员资格。提供该过程是为了向后兼容。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_addrolemembersp_droprolemember 可用来更改单个角色中的角色成员资格,而不影响在其它角色中的成员资格。

使用 sp_adduser 授予新数据库用户访问数据库权限的同时,将新数据库用户可添加到角色。

如果没有通过 sp_addrolemember 明确地将用户添加到其它角色,则每个用户均为默认角色 public 的成员。

sp_changegroup 不能在用户定义的事务中执行。

权限

sysadmin 固定服务器角色、db_ownerdb_securityadmin 固定数据库角色成员能够为该数据库中的任何角色执行 sp_changegroup

角色所有者可以执行 sp_changegroup。角色所有者必须既拥有该用户的新角色,又拥有其当前角色。

示例

下面的示例让用户 Albert 成为 developers 角色的成员。

EXEC sp_changegroup 'developers', 'Albert'

请参见

sp_addrole

sp_addrolemember

sp_adduser

sp_dropgroup

sp_helpgroup

系统存储过程