FirebirdSQL logo

Предложение TO

В предложении TO указывается список пользователей, ролей и объектов базы данных (процедур, функций, пакетов, триггеров и представлений) для которых будут выданы перечисленные привилегии.Необязательные предложения USER и ROLE позволяют уточнить, кому именно выдаётся привилегия.Если ключевое слово USER или ROLE не указано, то сервер проверяет, существует ли роль с данным именем, если таковой не существует, то привилегии назначаются пользователю.Существование пользователя, которому выдаются права, не проверяются при выполнении оператора GRANT.Если привилегия выдаётся объекту базы данных, то необходимо обязательно указывать тип объекта.

Tip
Рекомендация

Несмотря на то, что ключевые слова USER и ROLE не обязательные, желательно использовать их, чтобы избежать путаницы.

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

Example 1. Разрешение пользователю Superuser создавать базы данных
GRANT CREATE DATABASE TO USER Superuser;
Example 2. Разрешение пользователю Joe выполнять оператор ALTER DATABASE для текущей базы данных
GRANT ALTER DATABASE TO USER Joe;
Example 3. Разрешение пользователю Fedor удалять текущую базу данных
GRANT DROP DATABASE TO USER Fedor;

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

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

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

Следующий оператор назначит все привилегии на представление PLG$SRP_VIEW, используемое в плагине управления пользователями SRP, системной привилегии USER_MANAGEMENT.

GRANT ALL ON PLG$SRP_VIEW TO SYSTEM PRIVILEGE USER_MANAGEMENT

Описание системных привилегий вы можете посмотреть в CREATE ROLE