FirebirdSQL logo

Предложение GRANTED BY

При предоставлении прав в базе данных в качестве лица, предоставившего эти права, обычно записывается текущий пользователь.Используя предложение GRANTED BY можно предоставлять права от имени другого пользователя.При использовании оператора REVOKE после GRANTED BY права будут удалены только в том случае, если они были зарегистрированы от удаляющего пользователя.Для облегчения миграции из некоторых других реляционных СУБД нестандартное предложение AS поддерживается как синоним оператора GRANTED BY.

Предложение GRANTED BY может использовать:

  • Владелец базы данных;

  • SYSDBA;

  • Любой пользователь, имеющий права на роль RDB$ADMIN и указавший её при соединении с базой данных;

  • При использовании флага AUTO ADMIN MAPPING — любой администратор операционной системы Windows (при условии использования сервером доверенной авторизации — trusted authentication), даже без указания роли.

Даже владелец роли не может использовать GRANTED BY, если он не находится в вышеупомянутом списке.

Табличные привилегии

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

Список привилегий для таблиц
SELECT

Разрешает выборку данных (SELECT) из таблицы или представления.

INSERT

Разрешает добавлять записи (INSERT) в таблицу или представление.

UPDATE

Разрешает изменять записи (UPDATE) в таблице или представлении.Можно указать ограничения, чтобы можно было изменять только указанные столбцы.

DELETE

Разрешает удалять записи (DELETE) из таблицы или представления.

REFERENCES

Разрешает ссылаться на указанные столбцы внешним ключом.Необходимо указать для столбцов, на которых построен первичный ключ таблицы, если на неё есть ссылка внешним ключом другой таблицы.

ALL

Объединяет привилегии SELECT, INSERT, UPDATE, DELETE и REFERENCES.