sp_droprole (Transact-SQL)
从当前数据库中删除数据库角色。
重要提示: |
---|
在 SQL Server 2005 中,sp_droprole 由 DROP ROLE 语句取代。提供 sp_droprole 只为与早期版本的 SQL Server 兼容,并且在未来版本中可能不再支持。 |
语法
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
请参阅
参考
安全存储过程 (Transact-SQL)
sp_addrole (Transact-SQL)
DROP ROLE (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sp_dropapprole (Transact-SQL)
系统存储过程 (Transact-SQL)