FirebirdSQL logo

Rôle (role) — Un objet de base de données représentant un ensemble de privilèges. Les rôles mettent en œuvre le concept de gestion de la sécurité au niveau du groupe. Un ensemble de privilèges est accordé à un rôle, puis le rôle peut être accordé ou révoqué à un ou plusieurs utilisateurs.

Un utilisateur à qui l’on accorde un rôle doit le spécifier lors de la connexion afin de recevoir ses privilèges, ou le rôle doit être accordé en utilisant le mot-clé DEFAULT. Tout autre privilège accordé à l’utilisateur ne sera pas affecté lorsqu’il se connectera avec le rôle spécifié. La connexion avec plusieurs rôles n’est pas prise en charge, mais vous pouvez attribuer plusieurs rôles par défaut. Vous pouvez changer le rôle actuel avec l’opérateur SET ROLE.

Le rôle peut être accordé par d’autres rôles. En se connectant avec ce rôle, l’utilisateur se verra automatiquement accorder des droits sur tous les rôles émis avec le mot-clé DEFAULT.

Cette section traite de la création et de la suppression des rôles.

CREATE ROLE

affectation

Créer un nouveau rôle.

Disponible en

DSQL, ESQL

Syntaxe
CREATE ROLE rolename
[SET SYSTEM PRIVILEGES TO <privileges_list>]

<privileges_list> ::= <privilege> [, <privilege> [, <privilege> ...]]
Table 1. Paramètres de l’opérateur CREATE ROLE
Paramètre Description

rolename

Nom du rôle. Longueur maximale de 63 caractères.

privilege

Privilège du système.

L’opérateur CREATE ROLE crée un nouveau rôle. Le nom du rôle doit être unique parmi les noms de rôles.

Warning

Il est également souhaitable que le nom du rôle soit unique non seulement parmi les noms de rôle mais aussi parmi les noms d’utilisateur. Si vous créez un rôle avec le même nom qu’un utilisateur existant, cet utilisateur ne pourra pas se connecter à la base de données.

Rôles avec des privilèges système

La phrase SET SYSTEM PRIVILEGES TO vous permet de créer un rôle avec des privilèges système. Les privilèges système font partie des privilèges administrateur. Ainsi, en déléguant un rôle avec des privilèges système à un utilisateur, vous pouvez transférer certains droits d’administrateur de base de données à l’utilisateur.

Note

Les préférences système permettent un réglage très fin, donc parfois vous devrez accorder plus d’une préférence système pour effectuer une tâche. Par exemple, vous devez accorder IGNORE_DB_TRIGGERS en même temps que USE_GSTAT_UTILITY, parce que gstat doit ignorer les triggers sur les événements de la base de données.

Les privilèges système suivants sont disponibles :
USER_MANAGEMENT

Gestion des utilisateurs.

READ_RAW_PAGES

Lecture des pages au format brut à l’aide de Attachment::getInfo().

CREATE_USER_TYPES

Création, modification et suppression d’enregistrements hors système dans la table RDB$USER_TYPES.

USE_NBACKUP_UTILITY

Utilisation de nbackup pour créer des sauvegardes.

CHANGE_SHUTDOWN_MODE

Fermer la base de données (shutdown) et la remettre en ligne.

TRACE_ANY_ATTACHMENT

Tracer les sessions d’utilisateurs d’autres personnes.

MONITOR_ANY_ATTACHMENT

Surveiller (tables MON$) les sessions d’utilisateurs d’autres personnes.

ACCESS_SHUTDOWN_DATABASE

Accès à la base de données en mode arrêt.

CREATE_DATABASE

Créez une nouvelle base de données (stockée dans la base de données utilisateur security.db).

DROP_DATABASE

Suppression de la base de données actuelle.

USE_GBAK_UTILITY

Utilisation de l’utilitaire ou du service gbak.

USE_GSTAT_UTILITY

Utilisation de l’utilitaire ou du service gstat.

USE_GFIX_UTILITY

Utilisation de l’utilitaire ou du service gfix.

IGNORE_DB_TRIGGERS

Permet d’ignorer les déclencheurs sur les événements de la base de données.

CHANGE_HEADER_SETTINGS

Modifiez les paramètres sur la page d’en-tête de la base de données.

SELECT_ANY_OBJECT_IN_DATABASE

Exécutez l’instruction SELECT à partir de tous les objets sélectifs (tables, vues, procédures de sélection stockées).

ACCESS_ANY_OBJECT_IN_DATABASE

Accès (de quelque manière que ce soit) à tout objet de la base de données.

MODIFY_ANY_OBJECT_IN_DATABASE

Modification de tout objet de la base de données.

CHANGE_MAPPING_RULES

Modifier les règles d’affichage lors de l’authentification.

USE_GRANTED_BY_CLAUSE

Utilisation de GRANTED BY dans les opérateurs GRANT et REVOKE.

GRANT_REVOKE_ON_ANY_OBJECT

Exécution des instructions GRANT et REVOKE pour tout objet de la base de données.

GRANT_REVOKE_ANY_DDL_RIGHT

Exécution des instructions GRANT et REVOKE pour accorder des privilèges DDL.

CREATE_PRIVILEGED_ROLES

Créez des rôles privilégiés (en utilisant SET SYSTEM PRIVILEGES).

GET_DBCRYPT_KEY_NAME

Obtention du nom de la clé de cryptage.

MODIFY_EXT_CONN_POOL

Gestion du pool de connexions externes.

REPLICATE_INTO_DATABASE

Utilisation de l’API de réplication pour télécharger les ensembles de modifications dans la base de données.

PROFILE_ANY_ATTACHMENT

Profilage de toute connexion.

Pour vérifier si la connexion actuelle possède un privilège système donné, vous pouvez utiliser la fonction intégrée RDB$SYSTEM_PRIVILEGE().

Qui peut créer un rôle

Exécuter l’opérateur `CREATE ROLE' peut :

Exemples CREATE ROLE

Example 1. Création de rôles
CREATE ROLE SELLERS;
Example 2. Créez un rôle avec des privilèges système.
CREATE ROLE SYS_UTILS
SET SYSTEM PRIVILEGES TO USE_GBAK_UTILITY, USE_GSTAT_UTILITY, IGNORE_DB_TRIGGERS;

ALTER ROLE

affectation

Modifier les privilèges système d’un rôle.

Disponible en

DSQL, ESQL

Syntaxe
ALTER ROLE rolename
{
    SET SYSTEM PRIVILEGES TO <privileges_list>
  | DROP SYSTEM PRIVILEGES
}


<privileges_list> ::= <privilege> [, <privilege> [, <privilege> ...]]
Syntaxe pour la partie RDB$ADMIN
ALTER ROLE RDB$ADMIN {SET | DROP} AUTO ADMIN MAPPING
Table 1. Paramètres de l’opérateur ALTER ROLE
Paramètre Description

rolename

Nom du rôle.

privilege

Privilège du système.

L’instruction ALTER ROLE modifie ou supprime la liste des privilèges système d’un rôle. L’instruction SET SYSTEM PRIVILEGES TO ajoute les privilèges système de la liste au rôle. Pour effacer la liste des privilèges système définis par l’instruction précédente, utilisez l’instruction ALTER ROLE avec l’instruction DROP SYSTEM PRIVILEGES.

L’opérateur ALTER ROLE RDB$ADMIN est conçu pour activer ou désactiver la possibilité pour les administrateurs Windows d’obtenir automatiquement les privilèges administrateurs à la connexion.

Cette capacité n’existe que pour un seul rôle, à savoir le rôle système RDB$ADMIN, qui existe dans toute base de données à partir de ODS 11.2. Voir AUTO ADMIN MAPPING pour plus de détails.

Actuellement déprécié et supporté pour la compatibilité ascendante, il est recommandé d’utiliser les opérateurs à la place. {CREATE | ALTER | DROP} MAPPING.

DROP ROLE

affectation

Suppression d’un rôle existant.

Disponible en

DSQL, ESQL

Syntaxe
DROP ROLE rolename
Table 1. Paramètres de l’opérateur DROP ROLE
Paramètre Description

rolename

Nom du rôle.

L’instruction DROP ROLE supprime un rôle existant. Lorsqu’un rôle est supprimé, tous les privilèges accordés à ce rôle sont révoqués.

Qui peut supprimer un rôle

Exécuter l’opérateur `DROP ROLE' peut :

  • Administrateurs

  • Le propriétaire du rôle ;

  • Utilisateurs avec privilège ALTER ANY ROLE.

Exemples DROP ROLE

Example 1. Suppression d’un rôle.
DROP ROLE SELLERS;
Voir aussi :

CREATE ROLE, REVOKE.