Оператор grant предоставляет указанным одному или нескольким пользователям (ролям) привилегии – права совершать действия с перечисленными объектами. Привилегии могут относиться к конкретному объекту или ко всем объектам указанного типа.
Формат вызова:
grant Привилегия,... on Объект to {Пользователь1,... | public} [with grant option];
grant Обшая_привилегия,... to { Пользователь1,... | public} [with grant option];
Объект ::= [table] {Имя_таблицы | Имя_встроенного_представления} | procedure Имя_процедуры | datasource Имя_внешнего_источника_данных | function Имя_встроенной_функции
Общая_привилегия ::= create datasource | create procedure | create profile | create role | create table | create user
Аргументы:
Аргумент
Значение
Пользователь
Имя пользователя или роли, которой передаются указанные права.
public
Указанные права передаются всем пользователям – как существующим, так и тем, которые будут созданы в будущем.
with grant option
Пользователь, который получает права, сможет передать полученные права другим пользователям
all privileges
Передаются все права, которые имеет текущий пользователь для указанного объекта.
select
Передается право получать результаты выполнения поискового запроса по указанной таблице или представлению.
delete
Передается право удалять записи из указанной таблицы.
insert
Передается право добавлять записи в указанную таблицу.
update
Передается право изменять записи в указанной таблице.
usage
Передается право использовать указанный объект. Эта привилегия используется только для процедур, внешних источников данных и некоторых встроенных функций.
trigger
Передается право создавать, изменять или удалять триггера для указанной таблицы.
index
Передается право индексировать указанную таблицу или выполнять операцию переноса переменной части таблицы в постоянную.
diff
Передается право удалять переменную часть таблицы.
alter
Передается право изменять характеристики таблицы или ремонтировать ее.
create datasource
Передается право создавать или удалять источники данных или изменять их характеристики.
create procedure
Передается право создавать или удалять хранимые процедуры.
create profile
Передается право создавать или удалять профили пользователей.
create role
Передается право создавать или удалять роли или управлять назначением ролей.
create table
Передается право создавать или удалять постоянные таблицы.
create user
Передается право создавать или удалять пользователей или изменять их характеристики.
Для передачи прав пользователям или ролям необходимо выполнение одного из условий:
· Пользователь является администратором базы данных;
· Пользователь имеет право, которое он передает;
· Пользователь получил право с атрибутом with grant option или пользователь передает право на объект, собственником которого является.
Примеры.
Назначить пользователю USER1 право на select, insert, update в таблице TAB1 с возможностью передачи данного права другим пользователям.
grant select, insert, update on TAB1 to USER1 with grant option;
Назначить пользователю USER1 право на создание таблиц.
grant create table to USER1;
Назначить пользователю USER1 все права на таблицу TAB1, которыми обладает текущий пользователь.