В этом руководстве вы узнаете, как использовать оператор SQL Server CREATE ROLE для создания новой роли в текущей базе данных.
Введение в оператор CREATE ROLE
Роль — это защищаемый на уровне базы данных объект, представляющий собой группу разрешений. Чтобы создать новую роль, используйте оператор CREATE ROLE:
CREATE ROLE role_name [AUTHORIZATION owner_name];
В этом синтаксисе:
- Сначала укажите имя роли после ключевых слов CREATE ROLE.
- Во-вторых, укажите ower_name в предложении AUTHORIZATION. Owner_name — это пользователь или роль базы данных, которая владеет новой ролью. Если вы опустите предложение AUTHORIZATION, то пользователь, который выполнит оператор CREATE ROLE, будет владеть новой ролью.
Обратите внимание, что владелец роли и любой член владеющей роли могут добавлять или удалять членов роли.
Обычно вы создаете новую роль, предоставляете ей разрешения с помощью оператора GRANT и добавляете членов в роль с помощью оператора ALTER ROLE.
SQL Server CREATE ROLE оператор
В следующем примере показано, как использовать оператор CREATE ROLE для создания ролей в образце базы данных BikeStores.
1) Пример создания новой роли
Сначала создайте новый логин с именем james в основной базе данных:
CREATE LOGIN james WITH PASSWORD = 'Ux!sa123ayb';
Далее создайте нового пользователя для входа james:
CREATE USER james FOR LOGIN james;
Затем создайте новую роль под названием «Продажи»:
CREATE ROLE sales;
После этого предоставьте роли sales привилегии SELECT, INSERT, DELETE и UPDATE в схеме sales:
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::sales TO sales;
Наконец, добавьте пользователя james к роли sales:
ALTER ROLE sales ADD MEMBER james;
2) Пример создания новой роли, принадлежащей фиксированной роли базы данных
В следующем примере оператор CREATE ROLE используется для создания новой роли, принадлежащей предопределенной роли базы данных db_securityadmin:
CREATE ROLE sox_auditors AUTHORIZATION db_securityadmin;
3) Изучение ролей
Роли и их члены видны в представлениях sys.database_principals и sys.database_role_members.
Ниже приведена информация о ролях sales и sox_auditors:
SELECT name, principal_id, type, type_desc, owning_principal_id FROM sys.database_principals WHERE name in('sales', 'sox_auditors');
Выход:
Краткое содержание
- Используйте оператор SQL Server CREATE ROLE для создания новой роли в базе данных.