sp_droprolemember (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

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

重要

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

Transact-SQL 语法约定

语法

SQL Server 和 Azure SQL Edge 的语法:

sp_droprolemember
    [ @rolename = ] N'rolename'
    , [ @membername = ] N'membername'
[ ; ]

Azure Synapse Analytics 和并行数据仓库的语法:

sp_droprolemember N'rolename', 'membername'
[ ; ]

注意

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

参数

[ @rolename = ] N'rolename'

要从中删除成员的角色的名称。 @rolenamesysname,无默认值。 当前数据库中必须存在@rolename

[ @membername = ] N'membername'

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

返回代码值

0(成功)或 1(失败)。

注解

sp_droprolemember 通过从 sysmembers 表中删除行,从数据库角色中删除成员。 从角色中删除成员时,该成员将失去该角色的成员身份拥有的任何权限。

若要从固定服务器角色中删除用户,请使用 sp_dropsrvrolemember。 无法从公共角色中删除用户,并且无法从任何角色中删除 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'