FirebirdSQL logo

Привилегия USAGE

Для использования объектов метаданных, отличных от таблиц, представлений, хранимых процедур и функций, триггеров и пакетов, в пользовательских запросах необходимо предоставить пользователю привилегию USAGE для этих объектов.Поскольку в Firebird хранимые процедуры и функции, триггеры и подпрограммы пакетов выполняются с привилегиями вызывающего пользователя, то при использовании таких объектов метаданных в них, может потребоваться назначить привилегию USAGE и для них.

Note

В Firebird 3 привилегия USAGE проверяется только для исключений (exception) и генераторов/последовательностей (в gen_id(gen_name, n) или next value for gen_name). Привилегии для других объектов метаданных могут быть включены в следующих релизах, если покажется целесообразным.

Note

Привилегия USAGE даёт права только на приращения генераторов (последовательностей) с помощью функции GEN_ID или конструкции NEXT VALUE FOR.Оператор SET GENERATOR является аналогом оператора ALTER SEQUENCE …​ RESTART WITH, которые относятся к DDL операторам.По умолчанию права на такие операции имеет только владелец генератора (последовательности). Права на установку начального значения любого генератора (последовательности) можно предоставить с помощью GRANT ALTER ANY SEQUENCE, что не рекомендуется для обычных пользователей.

Примеры предоставления привилегии USAGE

Example 1. Предоставление привилегии USAGE
-- Привилегия USAGE на последовательность выданная роли
GRANT USAGE ON SEQUENCE GEN_AGE TO ROLE MANAGER;

-- Привилегия USAGE на последовательность выданная триггеру
GRANT USAGE ON SEQUENCE GEN_AGE TO TRIGGER TR_AGE_BI;

-- Привилегия USAGE на исключение выданная пакету
GRANT USAGE ON EXCEPTION E_ACCESS_DENIED
TO PACKAGE PKG_BILL;

docnext count = 3

DDL привилегии

По умолчанию создавать новые объекты метаданных могут только Администраторы, а изменять и удалять — администраторы и владельцы этих объектов.Выдача привилегий на создание, изменение или удаление объектов конкретного типа позволяет расширить этот список.

Список DDL привилегий
CREATE

Разрешает создание объекта указанного типа метаданных.

ALTER ANY

Разрешает изменение любого объекта указанного типа метаданных.

DROP ANY

Разрешает удаление любого объекта указанного типа метаданных.

ALL

Объединяет привилегии CREATE, ALTER и DROP на указанный тип объекта.

Note

Метаданные триггеров и индексов наследуют привилегии таблиц, которые владеют ими.

Примеры предоставления DDL привилегий

Example 1. Предоставление привилегий на изменение метаданных
-- Разрешение пользователю Joe создавать таблицы
GRANT CREATE TABLE TO Joe;

-- Разрешение пользователю Joe изменять любые процедуры
GRANT ALTER ANY PROCEDURE TO Joe;

DDL привилегии для базы данных

Оператор назначения привилегий на создание, удаление и изменение базы данных имеет несколько отличную форму от оператора назначения DDL привилегий на другие объекты метаданных.

Список DDL привилегий на базу данных
CREATE

Разрешает создание базы данных.

ALTER

Разрешает изменение текущей базы данных.

DROP

Разрешает удаление текущей базы данных.

ALL

Объединяет привилегии ALTER и DROP на базу данных.

Привилегия CREATE DATABASE является особым видом привилегий, поскольку она сохраняется в базе данных безопасности.Список пользователей имеющих привилегию CREATE DATABASE можно посмотреть в виртуальной таблице SEC$DB_CREATORS.Привилегию на создание новой базы данных могут выдавать только Администраторы в базе данных безопасности.

Привилегии ALTER DATABASE и DROP DATABASE относятся только к текущей базе данных, тогда как DDL привилегии ALTER ANY и DROP ANY на другие объекты метаданных относятся ко всем объектам указанного типа внутри текущей базы данных.Привилегии на изменение и удаление текущей базы данных могут выдавать только Администраторы.