Transact-SQL 参考

sp_droprolemember

从当前数据库中的 Microsoft® SQL Server™ 角色中删除安全帐户。

语法

sp_droprolemember [ @rolename = ] 'role' ,
    [ @membername = ] 'security_account'

参数

'role'

某个角色的名称,将要从该角色删除成员。role 的数据类型为 sysname,没有默认值。role 必须已经存在于当前的数据库中。

'security_account'

正在从角色中删除的安全帐户的名称。security_account 的数据类型为 sysname,没有默认值。security_account 可以是 SQL Server 用户或另一个 SQL Server 角色,或 Microsoft Windows NT® 用户或组。当前数据库中必须存在 security_account。当指定 Windows NT 用户或组时,请指定该 Windows NT 用户或组在数据库中可被识别的名称(用 sp_grantdbaccess 添加)。

返回代码值

0(成功)或 1(失败)

注释

通过从 sysmembers 表删除行,sp_droprolemember 删除角色成员。当从角色删除某个成员时,应用于该角色的权限不再适用于角色从前的那个成员。

不能使用 sp_droprolemember 从 Windows NT 组删除 Windows NT 用户;而只能在 Windows NT 安全系统中完成这个任务。若要从固定服务器角色删除用户,请使用 sp_dropsrvrolemember。不能从 public 角色删除用户,并且不能从任何角色删除 dbo

可以使用 sp_helpuser 查看 SQL Server 角色的成员,并且可以使用 sp_addrolemember 将成员添加到角色。

不能从用户定义的事务内执行 sp_droprolemember

权限

只有 sysadmin 固定服务器角色、db_owner db_securityadmin 固定数据库角色的成员才能执行 sp_droprolemember。只有 db_owner 固定数据库角色的成员才可以从固定数据库角色中删除用户。

示例

下面的示例从角色 Sales 中删除用户 JonB

EXEC sp_droprolemember 'Sales', 'Jonb'

请参见

sp_addrolemember

sp_droprole

sp_dropsrvrolemember

sp_helpuser

系统存储过程