Предложение WITH GRANT OPTION
Необязательное предложение WITH GRANT OPTION
позволяет пользователям, указанным в списке пользователей, передавать другим пользователям привилегии указанные в списке привилегий.
WITH GRANT OPTION
Необязательное предложение WITH GRANT OPTION
позволяет пользователям, указанным в списке пользователей, передавать другим пользователям привилегии указанные в списке привилегий.
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
.
GRANT <privilege>
для таблиц-- Привилегии SELECT, INSERT пользователю ALEX
GRANT SELECT, INSERT ON TABLE SALES
TO USER ALEX;
-- Привилегия SELECT ролям MANAGER, ENGINEER и пользователю IVAN
GRANT SELECT ON TABLE CUSTOMER
TO ROLE MANAGER, ROLE ENGINEER, USER IVAN;
-- Все привилегии для роли ADMINISTRATOR
-- с возможностью передачи своих полномочий
GRANT ALL ON TABLE CUSTOMER
TO ROLE ADMINISTRATOR WITH GRANT OPTION;
-- Привилегии SELECT и REFRENCE для столбца NAME для всех пользователей
GRANT SELECT, REFERENCES (NAME) ON TABLE COUNTRY
TO PUBLIC;
-- Выдача привилегии SELECT для пользователя IVAN от имени пользователя ALEX
GRANT SELECT ON TABLE EMPLOYEE
TO USER IVAN GRANTED BY ALEX;
-- Привилегия UPDATE для столбцов FIRST_NAME, LAST_NAME
GRANT UPDATE (FIRST_NAME, LAST_NAME) ON TABLE EMPLOYEE
TO USER IVAN;
-- Привилегия INSERT для хранимой процедуры ADD_EMP_PROJ
GRANT INSERT ON EMPLOYEE_PROJECT
TO PROCEDURE ADD_EMP_PROJ;