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_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 имеет привилегии на него и может назначать привилегии другим пользователям, ролям или объектам.
Для различных типов объектов метаданных существует различный набор привилегий.Эти привилегии будут описаны далее отдельно для каждого из типов объектов метаданных.