FirebirdSQL logo

CREATE ROLE

Назначение

Создание новой роли.

Доступно в

DSQL, ESQL

Синтаксис
CREATE ROLE rolename
[SET SYSTEM PRIVILEGES TO <privileges_list>]

<privileges_list> ::= <privilege> [, <privilege> [, <privilege> ...]]
Table 1. Параметры оператора CREATE ROLE
Параметр Описание

rolename

Имя роли.Максимальная длина 63 символа.

privilege

Системная привилегия.

Оператор CREATE ROLE создаёт новую роль.Имя роли должно быть уникальным среди имён ролей.

Warning

Желательно также чтобы имя роли было уникальным не только среди имён ролей, но и среди имён пользователей.Если вы создадите роль с тем же именем существующего пользователя, то такой пользователь не сможет подключиться к базе данных.

Роли с системными привилегиями

Предложение SET SYSTEM PRIVILEGES TO позволяет создать роль с системными привилегиями.Системные привилегии это части привилегий администратора.Таким образом, через делегирование роли с системными привилегиями пользователю можно передавать ему часть прав администратора БД.

Note

Системные привилегии позволяют производить очень тонкую настройку, поэтому иногда вам нужно будет выдать более 1 системной привилегии для выполнения какой-либо задачи.Например, необходимо выдать IGNORE_DB_TRIGGERS совместно с USE_GSTAT_UTILITY, потому что gstat должен игнорировать триггера на события БД.

Доступны следующие системные привилегии:
USER_MANAGEMENT

Управление пользователями.

READ_RAW_PAGES

Чтение страниц в сыром формате используя Attachment::getInfo()

CREATE_USER_TYPES

Создание, изменение и удаление не системных записей в таблице RDB$USER_TYPES.

USE_NBACKUP_UTILITY

Использование nbackup для создания резервных копий.

CHANGE_SHUTDOWN_MODE

Закрытие базы данных (shutdown) и возвращение её в online.

TRACE_ANY_ATTACHMENT

Трассировка чужих пользовательских сессий.

MONITOR_ANY_ATTACHMENT

Мониторинг (MON$ таблицы) чужих пользовательских сессий.

ACCESS_SHUTDOWN_DATABASE

Доступ к базе данных в режиме shutdown.

CREATE_DATABASE

Создание новой базы данных (хранится в базе данных пользователей security.db).

DROP_DATABASE

Удаление текущей БД.

USE_GBAK_UTILITY

Использование утилиты или сервиса gbak.

USE_GSTAT_UTILITY

Использование утилиты или сервиса gstat.

USE_GFIX_UTILITY

Использование утилиты или сервиса gfix.

IGNORE_DB_TRIGGERS

Разрешает игнорировать триггеры на события БД.

CHANGE_HEADER_SETTINGS

Изменение параметров на заголовочной странице БД.

SELECT_ANY_OBJECT_IN_DATABASE

Выполнение оператора SELECT из всех селективных объектов (таблиц, представлений, хранимых процедур выбора).

ACCESS_ANY_OBJECT_IN_DATABASE

Доступ (любым способом) к любому объекту БД.

MODIFY_ANY_OBJECT_IN_DATABASE

Изменение любого объекта БД.

CHANGE_MAPPING_RULES

Изменение правил отображения при аутентификации.

USE_GRANTED_BY_CLAUSE

Использование GRANTED BY в операторах GRANT и REVOKE.

GRANT_REVOKE_ON_ANY_OBJECT

Выполнение операторов GRANT и REVOKE для любого объекта БД.

GRANT_REVOKE_ANY_DDL_RIGHT

Выполнение операторов GRANT и REVOKE для выдачи DDL привилегий.

CREATE_PRIVILEGED_ROLES

Создание привилегированных ролей (с использованием SET SYSTEM PRIVILEGES).

GET_DBCRYPT_KEY_NAME

Получение имени ключа шифрования.

MODIFY_EXT_CONN_POOL

Управление пулом внешних соединений.

REPLICATE_INTO_DATABASE

Использование API репликации для загрузки наборов изменений в базу данных.

PROFILE_ANY_ATTACHMENT

Профилирование любого соединения.

Для проверки имеет ли текущее подключение заданную системную привилегию можно воспользоваться встроенной функциейRDB$SYSTEM_PRIVILEGE().