DROP ROLE (Transact-SQL)
从数据库中删除角色。
语法
DROP ROLE role_name
参数
- role_name
指定要从数据库删除的角色。
注释
无法从数据库删除拥有安全对象的角色。若要删除拥有安全对象的数据库角色,必须首先转移这些安全对象的所有权,或从数据库删除它们。无法从数据库删除拥有成员的角色。若要删除有成员的角色,必须首先删除角色的成员。
不能使用 DROP ROLE 删除固定数据库角色。
在 sys.database_role_members 目录视图中可以查看有关角色成员身份的信息。
注意 |
---|
从 SQL Server 2005 开始,架构的行为发生了更改。因此,假设架构与数据库用户等价的代码不再返回正确的结果。旧目录视图(包括 sysobjects)不应该用在曾使用过下列任何 DDL 语句的数据库中:CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE 或 ALTER AUTHORIZATION。在这类数据库中,必须改用新目录视图。新的目录视图将采用在 SQL Server 2005 中引入的使主体和架构分离的方法。有关目录视图的详细信息,请参阅目录视图 (Transact-SQL)。 |
权限
要求具有对数据库的 ALTER ANY ROLE 权限、具有对角色的 CONTOL 权限或 db_securityadmin 中的成员资格。
示例
以下示例从 AdventureWorks2008R2 删除数据库角色 purchasing。
USE AdventureWorks2008R2;
DROP ROLE purchasing;
GO