适用于:SQL Server Azure SQL 托管实例
Azure Synapse Analytics Analytics
平台系统(PDW)
删除用户定义的服务器角色。
用户自定义服务器角色在 SQL Server 2012(11.x)中引入。
语法
DROP SERVER ROLE role_name
[ ; ]
参数
role_name
指定要从服务器中删除的用户定义的服务器角色。
注解
拥有可安全资产的用户自定义服务器角色不能从服务器中移除。 若要删除拥有安全对象的用户定义服务器角色,必须先转移这些安全对象的所有权或删除这些安全对象。
用户自定义且有成员的服务器角色不能被移除。 若要删除拥有成员的用户定义服务器角色,必须先使用 ALTER SERVER ROLE 删除该角色的成员。
固定服务器角色无法移除。
通过查询 sys.server_role_members 目录视图可查看有关角色成员身份的信息。
权限
需要 CONTROL 服务器角色或 ALTER ANY SERVER ROLE 权限。
示例
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
INNER JOIN sys.server_principals AS SP
ON SRM.Role_principal_id = SP.principal_id
INNER 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
INNER JOIN sys.server_principals AS SP2
ON SP1.principal_id = SP2.owning_principal_id
ORDER BY SP1.name;