FirebirdSQL logo
 SécuritéGestion des utilisateurs 

Utilisation du rôle RDB$ADMIN dans une base de données conventionnelle

Pour utiliser les permissions du rôle RDB$ADMIN, l’utilisateur doit simplement le spécifier lorsqu’il se connecte à la base de données, ou bien le rôle RDB$ADMIN lui est donné à l’aide du mot-clé DEFAULT. Il peut également le spécifier ultérieurement à l’aide de l’instruction SET ROLE.

Accorder le rôle RDB$ADMIN dans la base de données des utilisateurs.

Comme personne ne peut se connecter à la base de données des utilisateurs, les instructions GRANT et REVOKE ne peuvent pas être utilisées ici. Au lieu de cela, le rôle RDB$ADMIN est accordé et retiré par les commandes de gestion des utilisateurs SQL : CREATE USER et ALTER USER, qui spécifient les options spéciales GRANT ADMIN ROLE et REVOKE ADMIN ROLE.

Syntaxe (incomplet)
CREATE USER newuser
PASSWORD 'password'
...
GRANT ADMIN ROLE
...

ALTER USER existinguser
GRANT ADMIN ROLE

ALTER USER existinguser
REVOKE ADMIN ROLE
Table 1. Paramètres pour les opérateurs de création et d’annulation du rôle RDB$ADMIN.
Paramètre Description

newuser

Le nom de l’utilisateur nouvellement créé. Longueur maximale de 63 caractères.

existinguser

Le nom d’un utilisateur existant.

password

Mot de passe de l’utilisateur, sensible à la casse.

Important

N’oubliez pas que GRANT ADMIN ROLE et REVOKE ADMIN ROLE ne sont pas des opérateurs GRANT et REVOKE mais des paramètres pour CREATE USER et ALTER USER.

Seuls les administrateurs peuvent donner des privilèges au rôle RDB$ADMIN.

Effectuer la même tâche en utilisant l’utilitaire gsec.

On peut faire de même avec l’utilitaire gsec en spécifiant le paramètre -admin pour sauvegarder l’attribut RDB$ADMIN` du compte utilisateur :

....
gsec -add new_user -pw password -admin yes
gsec -mo existing_user -admin yes
gsec -mo existing_user -admin no
....
Note

Selon le statut administratif de l’utilisateur actuel, l’utilitaire gsec peut exiger plus de paramètres tels que -user et -pass, ou -trusted.

Utilisation du rôle RDB$ADMIN dans la base de données des utilisateurs

Pour gérer les comptes utilisateurs via SQL, un utilisateur qui a des droits sur le rôle RDB$ADMIN doit se connecter à une base de données avec ce rôle. Comme personne n’a le droit de se connecter à la base de données des utilisateurs, l’utilisateur doit se connecter à une base de données normale où il a également des droits sur le rôle RDB$ADMIN. Il définit le rôle lors de la connexion à la base de données normale et peut exécuter n’importe quelle requête SQL sur celle-ci. Ce n’est pas la solution la plus élégante, mais c’est la seule façon de gérer les utilisateurs via des requêtes SQL.

A moins qu’il n’y ait une base de données normale où l’utilisateur a des droits sur le rôle RDB$ADMIN, la gestion des comptes via des requêtes SQL n’est pas disponible.