DROP SERVER ROLE (Transact-SQL)

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

用户定义的服务器角色是 SQL Server 2012 中的新增角色。

适用范围:SQL Server(SQL Server 2012 到当前版本)。

主题链接图标 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)

概念

主体(数据库引擎)