FirebirdSQL logo

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

Предложение 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().

Кто может создать роль

Выполнить оператор CREATE ROLE могут: