Caractéristiques de POSIX
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é.
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
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$ADMINLe 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.
gsecPour gérer les utilisateurs via l’utilitaire gsec, le rôle RDB$ADMIN doit être spécifié dans le commutateur -role.
AUTO ADMIN MAPPINGWindows 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 à |