Роль – набор привилегий, т.е. прав совершать определенные действия над указанными объектами. Этот набор привилегий можно будет передавать другим ролям или пользователям. Роль содержит как привилегии, которые переданы роли непосредственно, так и привилегии других ролей.
Оператор create role создает роль.
Формат вызова:
create role Имя_роли;
Аргументы:
| Аргумент
| Значение
|
| Имя_роли
| Задает имя роли. Имя роли должно содержать буквы и цифры, должно начинаться с буквы и должно быть не длиннее 31 символа. Имена ролей должны быть уникальными и не должны совпадать с зарезервированными словами и с именами пользователей.
|
Для создания роли необходимо выполнение одного из условий:
· Пользователь является администратором базы данных;
· Пользователь получил право на создание пользователей (привилегия create role) с помощью оператора grant create role.
Перед созданием роли и после него вызываются триггеры, установленные оператором:
create trigger Имя_триггера for admin {before | after} create role...
В триггере create role переменная new (см. раздел 4.7 «Работа с триггерами») имеет следующую структуру:
| Имя поля
| Тип поля
| Назначение
|
| NAME
| char(32)
| Имя роли.
|
Пример:
Создать роль с именем ROLE_SKLAD:
create role ROLE_SKLAD;
Для удаления роли используется SQL оператор drop role.
Формат вызова:
drop user Имя_роли;