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


CREATE ROLE (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в базе данных Microsoft Fabric SQL в Microsoft Fabric

Создает новую роль базы данных в текущей базе данных.

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

Синтаксис

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

Аргументы

role_name
Имя создаваемой роли.

AUTHORIZATION owner_name
Пользователь (или роль) базы данных, который станет владельцем новой роли. Если пользователь не указан, владельцем роли станет пользователь, выполнивший инструкцию CREATE ROLE. Владелец роли или любой элемент роли-владельца может добавлять или удалять элементы роли.

Замечания

Роли — это сущности, защищаемые на уровне базы данных. После создания роли необходимо настроить для нее разрешения уровня базы данных при помощи инструкций GRANT, DENY и REVOKE. Для добавления членов в роль базы данных следует использовать инструкцию ALTER ROLE (Transact-SQL). Дополнительные сведения см. в статье Роли уровня базы данных.

Роли базы данных видны в представлениях каталога sys.database_role_members и sys.database_principals.

Сведения о проектировании системы разрешений см. в статье Getting Started with Database Engine Permissions.

Внимание

Начиная с 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).

Разрешения

Требуется разрешение CREATE ROLE для базы данных или членство в предопределенной роли базы данных db_securityadmin. Если указывается параметр AUTHORIZATION, необходимы также следующие разрешения:

  • Для передачи роли во владение другому пользователю необходимо связанное с этим пользователем разрешение IMPERSONATE.

  • Для передачи роли во владение другой роли необходимо членство в роли-получателе или связанное с этой ролью разрешение ALTER.

  • Для передачи роли во владение роли приложения необходимо связанное с прикладной ролью разрешение ALTER.

Примеры

Во всех приведенных ниже примерах используется база данных AdventureWorks.

А. Создание роли базы данных, принадлежащей пользователю базы данных

Следующий пример создает роль базы данных buyers, принадлежащую пользователю BenMiller.

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

B. Создание роли базы данных, принадлежащей предопределенной роли базы данных

Следующий пример создает роль базы данных auditors, принадлежащую предопределенной роли базы данных db_securityadmin.

CREATE ROLE auditors AUTHORIZATION db_securityadmin;  
GO  

См. также

Субъекты (ядро СУБД)
ALTER 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)
Приступая к работе с разрешениями Database Engine