FirebirdSQL logo
 РолиОператоры для отзыва привилегий и ролей 

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

GRANT

Назначение

Предоставление привилегий или назначение ролей.

Доступно в

DSQL

Синтаксис (предоставление привилегий)
GRANT <privileges>
  TO <grantee_list>
  [WITH GRANT OPTION]
  [{GRANTED BY | AS} [USER] grantor]

<privileges> ::=
    <table_privileges> | <execute_privilege>
  | <usage_privilege>  | <ddl_privileges>
  | <db_ddl_privilege>

<table_privileges> ::=
  {ALL [PRIVILEGES] | <table_privilege_list> }
    ON [TABLE] {table_name | view_name}

<table_privilege_list> ::=
  <table_privilege> [, <tableprivilege> ...]

<table_privilege> ::=
    SELECT | DELETE | INSERT
  | UPDATE [(col [, col ...])]
  | REFERENCES [(col [, col ...)]

<execute_privilege> ::= EXECUTE ON {
    PROCEDURE proc_name
  | FUNCTION func_name
  | PACKAGE package_name }

<usage_privilege> ::= USAGE ON {
    EXCEPTION exception_name
  | {GENERATOR | SEQUENCE} sequence_name }

<ddl_privileges> ::=
  {ALL [PRIVILEGES] | <ddl_privilege_list>} <object_type>

<ddl_privilege_list> ::=
  <ddl_privilege> [, <ddl_privilege> ...]

<ddl_privilege> ::= CREATE | ALTER ANY | DROP ANY

<object_type> ::=
    CHARACTER SET | COLLATION | DOMAIN | EXCEPTION
  | FILTER | FUNCTION | GENERATOR | PACKAGE
  | PROCEDURE | ROLE | SEQUENCE | TABLE | VIEW

<db_ddl_privileges> ::=
  {ALL [PRIVILEGES] | <db_ddl_privilege_list>} {DATABASE | SCHEMA}

<db_ddl_privilege_list> ::=
  <db_ddl_privilege> [, <db_ddl_privilege> ...]

<db_ddl_privilege> ::= CREATE | ALTER | DROP

<grantee_list> ::= <grantee> [, <grantee> ...]

<grantee> ::=
    PROCEDURE proc_name  | FUNCTION func_name
  | PACKAGE package_name | TRIGGER trig_name
  | VIEW view_name       | ROLE role_name
  | [USER] username      | GROUP Unix_group
  | PUBLIC
  | <sys_privileges>

<sys_privileges> ::= SYSTEM PRIVILEGE <sys_privileges_list>

<sys_privileges_list> ::= <sys_privilege> [, <sys_privilege> [, <sys_privilege> ...]]
Синтаксис (назначение ролей)
GRANT <role_granted>
  TO <role_grantee_list>
  [WITH ADMIN OPTION]
  [{GRANTED BY | AS} [USER] grantor]

<role_granted> ::= [DEFAULT] role_name [, [DEFAULT] role_name ...]

<role_grantee_list> ::=
  <role_grantee> [, <role_grantee> ...]

<role_grantee> ::=
    [USER] username
  | [ROLE] grantee_role_name
Table 1. Параметры оператора GRANT
Параметр Описание

table_name

Имя таблицы, к которой должно быть предоставлена привилегия.

view_name

Имя представления, к которому должно быть предоставлена привилегия, или которому будут предоставлены привилегии.

col

Столбец таблицы, к которому должна быть применена привилегия.

proc_name

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

func_name

Имя хранимой функции (или UDF), для которой должна быть выдана привилегия EXECUTE или которой будут даны привилегии.

package_name

Имя пакета, для которого должна быть выдана привилегия EXECUTE или которому будут даны привилегии.

exception_name

Имя исключения, для которого должна быть выдана привилегия USAGE.

generator_name

Имя генератора (последовательности), для которого должна быть выдана привилегия USAGE.

object_type

Тип объекта метаданных.

object_list

Список объектов метаданных, которым будут даны привилегии.

trig_name

Имя триггера, которому будут даны привилегии.

user_list

Список пользователей/ролей, которым будут выданы привилегии.

username

Имя пользователя, для которого выдаются привилегии или которому назначается роль.

rolename

Имя роли.

Unix_group

Имя группы пользователей в операционных системах семейства UNIX.Только в Firebird Embedded.

Unix_user

Имя пользователя в операционной системе семейства UNIX.Только в Firebird Embedded.

sys_privilege

Системная привилегия.

role_granted

Список ролей, которые будут назначены.

role_grantee_list

Список пользователей, которым будут назначены роли.

grantor

Пользователь от имени, которого предоставляются привилегии.

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

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

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