CREATE ROLE (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в 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