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


CREATE ROLE (Transact-SQL)

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

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

CREATE ROLE role_name [ AUTHORIZATION owner_name ]

Аргументы

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

Замечания

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

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

ms187936.Caution(ru-ru,SQL.90).gifВнимание!
В SQL Server 2005 поведение схем отличается от поведения в ранних версиях SQL Server. Код, предполагающий, что схемы эквивалентны пользователям базы данных, может возвращать неверные результаты. Старые представления каталога содержат таблицу 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 в базе данных. Если указывается параметр AUTHORIZATION, необходимы также следующие разрешения.

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

Примеры

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

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

USE AdventureWorks;
CREATE ROLE buyers AUTHORIZATION BenMiller;
GO

Б. Создание роли базы данных, принадлежащей фиксированной роли базы данных

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

USE AdventureWorks;
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)

Другие ресурсы

Участники

Справка и поддержка

Получение помощи по SQL Server 2005