GRANT
Описание
GRANT устанавливает привилегии на объекты базы данных, для пользователей или других объектов базы данных. Когда объект впервые создан, только его создатель имеет привилегии на него, и только создатель может предоставить (GRANT) привилегии на него другим пользователям или объектам.
Для доступа к таблице или виду, пользователю или объекту требуются SELECT, INSERT, UPDATE или DELETE привилегии на эту таблицу или вид.
Для вызова сохраненной процедуры из приложения, пользователю или объекту требуется EXECUTE привилегия на нее.
Пользователи могут дать разрешение, предоставлять привилегии другим пользователям, обеспечивая <userlist>, который включает WITH GRANT OPTION. Пользователи могут предоставлять другим только те привилегии которые им, непосредственно, назначены.
Привилегии могут быть назначены всем пользователям определив PUBLIC вместо списка имен пользователей. Определение PUBLIC предоставляет привилегии только пользователям, но не объектам базы данных.
Следующая таблица суммирует доступные привилегии:
Привилегия | Позволяет пользователям... |
---|---|
ALL |
Выполнять SELECT, DELETE, INSERT, UPDATE и EXECUTE. |
SELECT |
Получать строки из таблицы или вида. |
DELETE |
Устранять строки из таблицы или вида. |
INSERT |
Сохранять новые строки в таблицу или вид. |
UPDATE |
Изменять текущие значения в одном или большем количестве столбцов в таблице или виде. Может быть ограниченно определенным подмножеством столбцов. |
EXECUTE |
Выполнять сохраненные процедуры. |
Привилегии могут быть удалены только пользователем, назначившим их, с помощью инструкции REVOKE. Если ALL привилегии назначены, тогда ALL привилегии должны быть отменены. Если привилегии предоставлены как PUBLIC, они могут быть удалены только для PUBLIC.
Синтаксис
GRANT{ {ALL [PRIVILEGES] | SELECT | DELETE | INSERT | UPDATE [(col [, col ...])]} ON [TABLE] {tablename | viewname} TO {<object> | <userlist>} | EXECUTE ON PROCEDURE procname TO {<object> | <userlist>} }; <object> = PROCEDURE procname | TRIGGER trigname | VIEW viewname | [USER] username | PUBLIC [, <object>] <userlist> = [USER] username [, [USER] username ...] [WITH GRANT OPTION]
Аргумент | Описание |
---|---|
col |
Столбцы, к которым предоставленные привилегии применяются. |
tablename |
Имя существующей таблицы, к которой предоставленные привилегии применяются. |
viewname |
Имя существующего вида, к которому предоставленные привилегии применяются. |
<object> |
Имя пользователя или существующего объекта базы данных, которым привилегии будут предоставлены. |
<urerlist> |
Список пользователей, которым привилегии будут предоставлены. |
WITH GRANT OPTION |
Передает GRANT полномочие для привилегий, перечисленных в инструкции GRANT, пользователям, перечисленным в <urerlist>. |
Примеры
Следующая инструкция предоставляет SELECT и DELETE привилегии пользователю. Опция WHITH GRANT OPTION дает пользователю GRANT полномочия:
GRANT SELECT, DELETE ON COUNTRY TO CHLOE WITH GRANT OPTION;
Следующая инструкция предоставляет EXECUTE привилегии на процедуру другим процедурам и пользователю:
GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO PROCEDURE ADD_EMP_PROJ, LUIS;