Поделиться через


DROP SERVER ROLE (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure Azure Synapse Analytics Analytics 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 ROLE.

Примеры

А. Удаление роли сервера

В следующем примере удаляется роль сервера 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)