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


DROP ROLE (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure Azure Synapse Analytics Analytics Platform System (PDW)

Удаляет роль из базы данных.

Соглашения о синтаксисе Transact-SQL

Синтаксис

-- 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.

Примеры

В следующем примере роль базы данных purchasing удаляется из базы данных AdventureWorks2022.

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)