sp_droprolemember (Transact-SQL)

适用于: 是SQL Server(所有支持的版本) 是Azure SQL 数据库 是Azure SQL 托管实例 是Azure Synapse Analytics 是并行数据仓库

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

重要

后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改为使用 ALTER ROLE。

主题链接图标 Transact-SQL 语法约定

语法

SQL Server 和 Azure SQL 数据库

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

并行和并行Azure Synapse Analytics的Data Warehouse

sp_droprolemember 'role' ,  
     'security_account'  

备注

Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

参数

[ @rolename = ] 'role' 从中删除成员的角色的名称。 rolesysname,没有默认值。 角色 必须存在于当前数据库中。

[ @membername = ] 'security_account' 从角色中删除的安全帐户的名称。 security_account sysname,没有默认值。 security_account 可以是数据库用户、另一个数据库角色、Windows登录名或Windows组。 security_account 必须存在于当前数据库中。

返回代码值

0(成功)或 1(失败)

备注

sp_droprolemember 通过从 sysmembers 表中删除行来删除数据库角色的成员。 在从角色中删除一个成员后,该成员将失去作为该角色的成员所拥有的任何权限。

若要删除固定服务器角色的用户,请使用 sp_dropsrvrolemember。 不能删除 public 角色的用户,也不能从任何角色中删除 dbo。

使用sp_helpuser角色的成员,并使用 SQL Server ALTER ROLE 将成员添加到角色。

权限

要求具有角色的 ALTER 权限。

示例

以下示例将删除角色 JonB 中的用户 Sales

EXEC sp_droprolemember 'Sales', 'Jonb';  

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

以下示例将删除角色 JonB 中的用户 Sales

EXEC sp_droprolemember 'Sales', 'JonB'  

另请参阅

安全存储过程 (Transact-SQL)
sp_addrolemember (Transact-SQL)
sp_droprole (Transact-SQL)
sp_dropsrvrolemember (Transact-SQL)
sp_helpuser (Transact-SQL)
系统存储过程 (Transact-SQL)