Инструменты пользователя

Инструменты сайта


Боковая панель

Введение

Статьи и часто задаваемые вопросы

Установка и настройка

Обработка ошибок

Полезные запросы SQL

Тематические группы

grant

Это старая версия документа!


GRANT

Версии сервера

Firebird v0.9 Firebird v1.0 Firebird v1.5 Firebird v2.0

Формат

GRANT {
<privileges> ON [TABLE] {tablename | viewname}
TO {   <object_list>
| <user_list> [WITH GRANT OPTION] 
| GROUP Unix_group}
| EXECUTE ON PROCEDURE procname 
TO {<object_list> | <user_list>}
| <role_granted> TO {PUBLIC | <role_grantee_list> [WITH ADMIN 
OPTION]}
} [{GRANTED BY | AS} [USER] grantor];

<privileges> ::= ALL [PRIVILEGES] | <privilege_list>

<privilege_list> ::= {
SELECT
| DELETE
| INSERT
| UPDATE [(col [,col …])]
| REFERENCES [(col [,col …])]
} [, <privilege_list> …]

<object_list> ::= {
PROCEDURE procname
| TRIGGER trigname
| VIEW viewname
| PUBLIC
} [, <object_list> …]

<user_list> ::= {
[USER] username
| [ROLE] rolename
| Unix_user
} [, <user_list> …]

<role_granted> ::= rolename [, rolename …]

<role_grantee_list> ::= [USER] username [, [USER] username  …]
Аргумент Описание
tablename Имя таблицы, к которой должно быть применена привилегия.
viewname Имя представления, к которому должно быть применена привилегия.
procname Имя хранимой процедуры, для которой должна быть выдана привилегия EXECUTE или которой будут даны привилегии.
col Столбец таблицы, к которому должна быть применена привилегия.
Unix_groupИмя группы пользователей в операционных системах семейства UNIX.
username Имя пользователя, для которого выдаются привилегии или которому назначается роль.
rolename Имя роли.
trigname Имя триггера.
grantor Пользователь от имени, которого предоставляются привилегии.

Описание

GRANT устанавливает привилегии на объекты базы данных, для пользователей или других объектов базы данных. Когда объект впервые создан, только его создатель имеет привилегии на него, и только создатель может предоставить (GRANT) привилегии на него другим пользователям или объектам.

Для доступа к таблице или виду, пользователю или объекту требуются SELECT, INSERT, UPDATE или DELETE привилегии на эту таблицу или вид.

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

Пользователи могут дать разрешение, предоставлять привилегии другим пользователям, обеспечивая <userlist>, который включает WITH GRANT OPTION. Пользователи могут предоставлять другим только те привилегии которые им, непосредственно, назначены.

Привилегии могут быть назначены всем пользователям определив PUBLIC вместо списка имен пользователей. Определение PUBLIC предоставляет привилегии только пользователям, но не объектам базы данных.

Следующая таблица суммирует доступные привилегии:

Привилегия Позволяет пользователям…
ALL Выполнять SELECT, DELETE, INSERT, UPDATE и REFERENCES.
SELECT Получать строки из таблицы или вида.
DELETE Устранять строки из таблицы или вида.
INSERT Сохранять новые строки в таблицу или вид.
UPDATE Изменять текущие значения в одном или большем количестве столбцов в таблице или виде. Может быть ограниченно определенным подмножеством столбцов.
EXECUTE Выполнять сохраненные процедуры.
REFERENCES Привилегия позволяет создавать внешний ключ, который использует один или более столбцов этой таблицы, как родительский ключ. Вы можете ограничить эту привилегию для определенных столбцов.

Привилегии могут быть удалены только пользователем, назначившим их, с помощью инструкции REVOKE. Если ALL привилегии назначены, тогда ALL привилегии должны быть отменены. Если привилегии предоставлены как PUBLIC, они могут быть удалены только для PUBLIC.

Пример

GRANT SELECT, DELETE ON COUNTRY TO CHLOE WITH GRANT OPTION;

GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ TO PROCEDURE ADD_EMP_PROJ, LUIS;

GRANT SELECT, UPDATE ON JOB TO PROCEDURE GET_EMP_PROJ;

См. также

Только авторизованные участники могут оставлять комментарии.
grant.1419655744.txt.gz · Последние изменения: 2014/12/27 07:49 — 109.195.129.114