FirebirdSQL logo
 RôlesLes opérateurs peuvent révoquer des privilèges et des rôles 

L’opérateur GRANT est utilisé pour accorder des privilèges et attribuer des rôles, aux utilisateurs et aux autres objets de la base de données.

GRANT

affectation

Accorder des privilèges ou assigner des rôles.

Disponible en

DSQL

Syntaxe (octroi de privilèges)
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> ...]]
Syntaxe (affectation de rôle)
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. Paramètres de l’opérateur GRANT.
Paramètre Description

table_name

Le nom de la table à laquelle le privilège doit être accordé.

view_name

Le nom de la soumission à laquelle le privilège doit être accordé, ou à laquelle le privilège sera accordé.

col

La colonne de la table à laquelle le privilège doit être appliqué.

proc_name

Nom de la procédure stockée pour laquelle le privilège EXECUTE doit être délivré ou à laquelle le privilège sera accordé.

func_name

Nom de la fonction stockée (ou UDF) qui doit recevoir le privilège EXECUTE ou qui recevra des privilèges.

package_name

Le nom du paquet auquel sera attribué le privilège EXECUTE ou auquel le privilège sera attribué.

exception_name

Le nom de l’exception pour laquelle le privilège USAGE doit être délivré.

generator_name

Le nom du générateur (séquence) pour lequel le privilège USAGE doit être émis.

object_type

Le type d’objet de métadonnées.

object_list

Une liste d’objets de métadonnées qui recevront des privilèges.

trig_name

Le nom du déclencheur auquel le privilège doit être accordé.

user_list

Une liste d’utilisateurs/rôles auxquels des privilèges doivent être accordés.

username

Le nom de l’utilisateur pour lequel des privilèges sont accordés ou auquel un rôle est attribué.

rolename

Nom du rôle.

Unix_group

Nom du groupe d’utilisateurs dans les systèmes d’exploitation de la famille UNIX. Seulement dans Firebird Embedded.

Unix_user

Nom d’utilisateur dans un système d’exploitation de la famille UNIX. Seulement dans Firebird Embedded.

sys_privilege

Privilège du système.

role_granted

Une liste des rôles à attribuer.

role_grantee_list

Une liste d’utilisateurs qui se verront attribuer des rôles.

grantor

Un utilisateur au nom duquel des privilèges sont accordés.

L’instruction GRANT accorde un ou plusieurs privilèges pour des objets de base de données à des utilisateurs, des rôles, des procédures stockées, des fonctions, des packages, des déclencheurs et des vues.

Un utilisateur autorisé ne dispose d’aucun privilège tant que des droits ne lui sont pas explicitement accordés. Lorsqu’un objet est créé, seuls son créateur et SYSDBA disposent de privilèges sur celui-ci et peuvent attribuer des privilèges à d’autres utilisateurs, rôles ou objets.

Il existe un ensemble différent de privilèges pour les différents types d’objets de métadonnées. Ces privilèges seront décrits ci-dessous séparément pour chaque type d’objet de métadonnées.