sp_droprole (Transact-SQL)

从当前数据库中删除数据库角色。

重要说明重要提示

在 SQL Server 2005 中,sp_droprole 由 DROP ROLE 语句取代。提供 sp_droprole 只为与早期版本的 SQL Server 兼容,在未来版本中可能不再支持它。

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

语法

sp_droprole [ @rolename= ] 'role'

参数

  • [ @rolename = ] 'role'
    要从当前数据库中删除的数据库角色的名称。role 的数据类型为 sysname,无默认值。role 必须已经存在于当前数据库中。

返回代码值

0(成功)或 1(失败)

注释

使用 sp_droprole 只能删除数据库角色。

不能删除带有现有成员的数据库角色。必须删除数据库角色的所有成员,然后才能删除该数据库角色。若要从角色中删除用户,请使用 sp_droprolemember。如果任何用户仍然为角色的成员,则 sp_droprole 将显示这些成员。

不能删除固定角色及 public 角色。

如果角色拥有任何安全对象,则不能将其删除。在删除拥有安全对象的应用程序角色之前,必须首先移交安全对象的所有权或将其删除。使用 ALTER AUTHORIZATION 更改必须删除的对象的所有者。

不能在用户定义的事务内执行 sp_droprole

权限

需要对角色具有 CONTROL 权限。

示例

以下示例删除应用程序角色 Sales。

EXEC sp_droprole 'Sales';
GO