DROP ROLE (Transact-SQL)
适用于:SQL Server Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)
从数据库中删除角色。
语法
-- Syntax for SQL Server
DROP ROLE [ IF EXISTS ] role_name
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse
DROP ROLE role_name
参数
IF EXISTS
适用范围:SQL Server(SQL Server 2016 (13.x) 到当前版本)。
有条件地删除角色(仅当其已存在时)。
role_name
指定要从数据库删除的角色。
注解
无法从数据库删除拥有安全对象的角色。 若要删除拥有安全对象的数据库角色,必须首先转移这些安全对象的所有权,或从数据库删除它们。 无法从数据库删除拥有成员的角色。 若要删除拥有成员的角色,必须首先删除角色的成员。
若要删除数据库角色中的成员,请使用 ALTER ROLE (Transact-SQL)。
不能使用 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)。
若要删除服务器角色,请使用 DROP SERVER ROLE (Transact-SQL)。
权限
要求对数据库具有 ALTER ANY ROLE 权限、对角色具有 CONTROL 权限或具有 db_securityadmin 中的成员身份。
示例
以下示例从 AdventureWorks2022
数据库中删除数据库角色 purchasing
。
DROP ROLE purchasing;
GO
另请参阅
CREATE ROLE (Transact-SQL)
ALTER ROLE (Transact-SQL)
主体(数据库引擎)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)
安全函数 (Transact-SQL)