DROP SERVER ROLE (Transact-SQL)

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

删除用户定义的服务器角色。

用户定义的服务器角色是 SQL Server 2012 (11.x) 中的新增角色。

Transact-SQL 语法约定

语法

DROP SERVER ROLE role_name  

参数

role_name
指定要从服务器中删除的用户定义的服务器角色。

注解

无法从服务器中删除拥有安全对象的用户定义服务器角色。 若要删除拥有安全对象的用户定义服务器角色,必须先转移这些安全对象的所有权或删除这些安全对象。

无法删除拥有成员的用户定义服务器角色。 若要删除拥有成员的用户定义服务器角色,必须先使用 ALTER SERVER ROLE 删除该角色的成员。

无法删除固定服务器角色。

通过查询 sys.server_role_members 目录视图可查看有关角色成员身份的信息。

权限

要求具有服务器角色的 CONTROL 权限或 ALTER ANY SERVER 权限。

示例

A. 删除服务器角色

以下示例删除服务器角色 purchasing

DROP SERVER ROLE purchasing;  
GO  

B. 查看角色成员身份

若要查看角色成员身份,请使用 SQL Server Management Studio 中的“服务器角色(成员)”页或执行以下查询:

SELECT SRM.role_principal_id, SP.name AS Role_Name,   
SRM.member_principal_id, SP2.name  AS Member_Name  
FROM sys.server_role_members AS SRM  
JOIN sys.server_principals AS SP  
    ON SRM.Role_principal_id = SP.principal_id  
JOIN sys.server_principals AS SP2   
    ON SRM.member_principal_id = SP2.principal_id  
ORDER BY  SP.name,  SP2.name  

C. 查看角色成员身份

若要确定服务器角色是否拥有其他服务器角色,请执行以下查询:

SELECT SP1.name AS RoleOwner, SP2.name AS Server_Role  
FROM sys.server_principals AS SP1  
JOIN sys.server_principals AS SP2  
    ON SP1.principal_id = SP2.owning_principal_id   
ORDER BY SP1.name ;  

另请参阅

ALTER ROLE (Transact-SQL)
CREATE ROLE (Transact-SQL)
主体(数据库引擎)
DROP ROLE (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)