SYSDBA
Dans Firebird il y a un compte spécial `SYSDBA' qui existe en dehors de toutes les restrictions de sécurité et qui a un accès complet à toutes les bases de données du serveur.
Propriétaire de la base de données
Fournir le rôle RDB$ADMIN dans une base de données conventionnelle
Utilisation du rôle RDB$ADMIN dans une base de données conventionnelle
Accorder le rôle RDB$ADMIN dans la base de données des utilisateurs.
Utilisation du rôle RDB$ADMIN dans la base de données des utilisateurs
SYSDBA
Dans Firebird il y a un compte spécial `SYSDBA' qui existe en dehors de toutes les restrictions de sécurité et qui a un accès complet à toutes les bases de données du serveur.
Sur les systèmes POSIX, y compris MacOSX, le nom d’utilisateur POSIX sera interprété comme le nom d’utilisateur de Firebird Embedded à moins que le nom d’utilisateur ne soit explicitement spécifié.
SYSDBA
dans POSIXSur les systèmes POSIX autres que MacOSX, l’utilisateur SYSDBA
n’a pas de mot de passe par défaut. Si une installation complète est effectuée en utilisant les scripts standards, un mot de passe à usage unique sera créé et enregistré dans un fichier texte dans le même répertoire que security4.fdb, généralement /opt/firebird/. Le fichier de mot de passe est nommé SYSDBA.password.
Note
|
Lors d’une installation à l’aide d’un programme d’installation distribué spécifique, l’emplacement du fichier de la base de données de sécurité et du fichier des mots de passe peut être différent de celui par défaut. |
Sur les systèmes POSIX, l’utilisateur root peut agir comme SYSDBA
. Firebird Embedded traitera alors le nom d’utilisateur root comme SYSDBA
et vous aurez accès à toutes les bases de données du serveur.
Sur les systèmes d’exploitation de la famille Windows NT, vous pouvez également utiliser les informations d’identification du système d’exploitation. Pour cela, le fournisseur Win_Sspi
doit être présent dans la liste des plugins du fichier de configuration firebird.conf (paramètre AuthServer
). De plus, ce plugin doit également être présent dans la liste des plugins côté client (paramètre AuthClient
).
Les administrateurs Windows n’ont pas automatiquement les permissions SYSDBA
lorsqu’ils se connectent à la base de données (à condition, bien sûr, que l’autorisation de confiance soit autorisée). Le fait que les administrateurs aient ou non des permissions automatiques SYSDBA
dépend de la valeur de l’indicateur AUTO ADMIN MAPPING
.
Note
|
Avant Firebird 3.0, lorsque l’authentification fiable était activée, les utilisateurs authentifiés par défaut étaient automatiquement mappés à `CURRENT_USER'. Dans Firebird 3 et plus, le mappage doit être fait explicitement pour les systèmes avec plusieurs bases de données de sécurité et l’authentification fiable activée. CREATE MAPPING. |
Le propriétaire de la base de données est soit l’utilisateur actuel (CURRENT_USER
) au moment de la création, soit l’utilisateur qui a été spécifié dans les paramètres USER
de l’instruction CREATE DATABASE
.
Le propriétaire de la base de données est l’administrateur de la base de données et a un accès complet à tous les objets de la base de données, même ceux créés par d’autres utilisateurs.
RDB$ADMIN
Le rôle système RDB$ADMIN
, est présent dans chaque base de données.Accorder à un utilisateur le rôle RDB$ADMIN
dans une base de données lui donne les privilèges SYSDBA
, mais seulement dans la base de données courante.
Les privilèges prennent effet immédiatement après la connexion à la base de données normale avec le rôle RDB$ADMIN
spécifié, après quoi l’utilisateur a un contrôle total sur tous les objets de la base de données.
Le rôle RDB$ADMIN
peut être accordé en utilisant le mot-clé DEFAULT
.Dans ce cas, l’utilisateur se verra automatiquement accorder des privilèges administratifs même s’il n’a pas spécifié le rôle RDB$ADMIN
lors de la connexion.
Le provisionnement dans la base de données de sécurité donne la possibilité de créer, modifier et supprimer des comptes d’utilisateurs.
Dans les deux cas, un utilisateur ayant les droits du rôle RDB$ADMIN
peut toujours transférer ce rôle à d’autres.En d’autres termes, "`WITH ADMIN OPTION'" est déjà intégré dans ce rôle et cette option peut être omise.
RDB$ADMIN
dans une base de données conventionnelleLes opérateurs GRANT
et REVOKE
sont utilisés pour attribuer et supprimer le rôle RDB$ADMIN
dans une base de données normale, tout comme les autres rôles.
GRANT [DEFAULT] [ROLE] RDB$ADMIN TO username REVOKE [DEFAULT] [ROLE] RDB$ADMIN FROM username
Paramètre | Description |
---|---|
username |
Le nom de l’utilisateur à qui le rôle |
Si le mot-clé DEFAULT
est présent dans l’instruction GRANT
, l’utilisateur recevra automatiquement des privilèges d’administration même s’il n’a pas spécifié le rôle RDB$ADMIN lors de la connexion. Seuls les administrateurs peuvent donner des privilèges au rôle RDB$ADMIN.
RDB$ADMIN
dans une base de données conventionnellePour 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
.
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.
CREATE USER newuser PASSWORD 'password' ... GRANT ADMIN ROLE ... ALTER USER existinguser GRANT ADMIN ROLE ALTER USER existinguser REVOKE ADMIN ROLE
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 |
Seuls les administrateurs peuvent donner des privilèges au rôle RDB$ADMIN
.
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 |
RDB$ADMIN
dans la base de données des utilisateursPour 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.
gsec
Pour gérer les utilisateurs via l’utilitaire gsec
, le rôle RDB$ADMIN
doit être spécifié dans le commutateur -role
.
AUTO ADMIN MAPPING
Windows uniquement.
Les administrateurs du système d’exploitation Windows n’obtiennent pas automatiquement les permissions SYSDBA
lorsqu’ils se connectent à une base de données (à moins, bien sûr, qu’une autorisation de confiance soit autorisée). Le fait que les administrateurs aient des droits SYSDBA automatiques dépend de la valeur de l’indicateur AUTO ADMIN MAPPING
. C’est un indicateur dans chacune des bases de données qui est désactivé par défaut. Si l’indicateur AUTO ADMIN MAPPING
est activé, il est effectif lorsqu’un administrateur Windows :
se connecte en utilisant l’authentification de confiance .
ne définit aucun rôle lors de la connexion.
Après une connexion “auto admin” réussie, le rôle actuel sera RDB$ADMIN
L’activation et la désactivation de l’indicateur AUTO ADMIN MAPPING
dans une base de données conventionnelle s’effectue comme suit
ALTER ROLE RDB$ADMIN SET AUTO ADMIN MAPPING -- Mise en marche
ALTER ROLE RDB$ADMIN DROP AUTO ADMIN MAPPING -- Mise hors tension
Ces opérateurs peuvent être exécutés par des utilisateurs disposant de droits suffisants, à savoir
le propriétaire de la base de données ;
Note
|
Opérateur
est un type d’instruction simplifié pour créer une correspondance entre le groupe prédéfini
En conséquence, l’opérateur
est équivalent à l’opérateur
Pour plus d’informations, voir Security object mapping. |
Dans les bases de données normales, l’état de AUTO ADMIN MAPPING
n’est vérifié que pendant la connexion. Si Administrator a le rôle RDB$ADMIN
parce que le mappage automatique s’est produit pendant la connexion, il conservera ce rôle pendant toute la session, même si lui ou quelqu’un d’autre désactive le mappage automatique au même moment.
De même, l’activation de AUTO ADMIN MAPPING
ne changera pas le rôle actuel dans RDB$ADMIN
pour les Administrateurs qui sont déjà connectés.
Vous ne pouvez pas activer ou désactiver l’indicateur AUTO ADMIN MAPPING
dans la base de données utilisateur avec l’instruction ALTER ROLE RDB$ADMIN
. Cependant, vous pouvez créer un mappage global du groupe prédéfini DOMAIN_ANY_RID_ADMINS
au rôle RDB$ADMIN
comme suit :
CREATE GLOBAL MAPPING WIN_ADMINS
USING PLUGIN WIN_SSPI
FROM Predefined_Group
DOMAIN_ANY_RID_ADMINS
TO ROLE RDB$ADMIN;
Alternativement, pour activer AUTO ADMIN MAPPING
dans la base de données utilisateur, vous pouvez utiliser l’utilitaire de ligne de commande gsec
:
gsec -mapping set gsec -mapping drop
Note
|
Selon le statut administratif de l’utilisateur actuel, l’utilitaire |
Seul SYSDBA
peut activer AUTO ADMIN MAPPING
s’il est désactivé, mais tout administrateur peut le désactiver.
Désactiver AUTO ADMIN MAPPING
désactive le mécanisme même qui lui donnait accès et donc il ne peut pas réactiver AUTO ADMIN MAPPING
. Même dans une session interactive de gsec
, le nouveau paramètre du drapeau prendra effet immédiatement.
Un administrateur est un utilisateur qui a des droits suffisants pour lire et écrire, créer, modifier et supprimer tout objet dans la base de données. Le tableau montre comment les privilèges `Superuser' sont activés dans divers contextes de sécurité Firebird.
Utilisateur | Rôle RDB$ADMIN |
Note |
---|---|---|
SYSDBA |
Automatiquement |
Existe automatiquement au niveau du serveur. Possède unepour tous les objets de toutes les bases de données. CanCréer, modifier et supprimer des utilisateurs, mais n’a pas d’accès direct à l’information.l’accès à la base de données de sécurité. |
Utilisateur root dans POSIX |
Automatiquement |
Similaire à |
Superuser dans POSIX |
Automatiquement |
Similaire à |
Propriétaire de la base de données |
Automatiquement |
Identique à |
Administrateurs Windows |
En cas de réussite de la connexion, la valeur est fixée à |
Similaire à
|
Utilisateur ordinaire |
Doit être pré-émis et doit être spécifié à la connexion |
Même chose que |
Utilisateur POSIX |
Doit être pré-émis et doit être spécifié à la connexion |
Identique à |
Utilisateur Windows |
Doit être pré-émis et doit être spécifié à la connexion |
Identique à |