IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Firebird Discussion :

Etude Firebird 3.0


Sujet :

Outils Firebird

  1. #1
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut Etude Firebird 3.0
    Bonjour je teste les fonctionnalités de FB 3.0 à l'aide notamment du migration guide to firebird 3 de Carlos H.Cantu
    Je me pose notamment la question de savoir "qui" est propriétaire d'une base et qui peut faire un backup
    Je constate notamment que l'absence de mot de passe dans une commande GBAK n'empêche nullement le backup de se faire.
    Seul cependant sysdba peut faire ce backup.
    De quelle manière peut on donner ce privilège à un autre utilisateur ?
    Comment peut on savoir (sans essayer) qui est l'utilisateur qui a le droit de faire un backup ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par frantzgac Voir le message
    Je me pose notamment la question de savoir "qui" est propriétaire d'une base
    Comment peut-on savoir (sans essayer) qui est l'utilisateur qui a le droit de faire un backup ?
    l'utilisateur qui a créé la BDD, pas forcément SYSDBA

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT RDB$OWNER_NAME AS DATABASE_OWNER
    FROM RDB$RELATIONS
    WHERE (RDB$SYSTEM_FLAG = 1);
    ou en interrogeant la pseudo table
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM SEC$USERS

    Citation Envoyé par frantzgac Voir le message
    qui peut faire un backup
    Seul cependant sysdba peut faire ce backup.
    il est clairement indiqué dans la documentation de GBAK que seul SYSDBA et le propriétaire peuvent le faire section 2.1, -U[SER] <username>


    Citation Envoyé par frantzgac Voir le message
    Je constate notamment que l'absence de mot de passe dans une commande GBAK n'empêche nullement le backup de se faire.
    Là, je suis étonné, il faudra que je tente le coup

    Citation Envoyé par frantzgac Voir le message
    De quelle manière peut-on donner ce privilège à un autre utilisateur ?
    Peut-être (car non testé)
    en donnant le ROLE RDB$ADMIN à l'utilisateur GRANT RDB$ADMIN TO <utilisateur>.
    et en utilisant l'option -ro[le] dans la ligne de commande de GBAK

    (Firebird 4 a introduit des privilèges supplémentaires USE_GBAK_UTILITY/USE_NBACKUP_UTILITY qui peut être utilisé pour accorder spécifiquement à un utilisateur d'effectuer uniquement des opérations gbak/nbackup)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    En tout cas j'ai fait divers tests
    Citation Envoyé par frantzgac
    Je constate notamment que l'absence de mot de passe dans une commande GBAK n'empêche nullement le backup de se faire.
    ce n'est pas ce que je constate
    PS C:\Users\serge> cd "c:\program files\firebird\firebird_3_0"
    PS C:\program files\firebird\firebird_3_0> ./gbak.exe -t employee d:\aenvoyer\employes.fbk
    gbak: ERROR:no permission for read-write access to database employee
    gbak:Exiting before completion due to errors
    PS C:\program files\firebird\firebird_3_0> ./gbak.exe -t -USER SYSDBA employee d:\aenvoyer\employes.fbk
    gbak: ERROR:no permission for read-write access to database employee
    gbak:Exiting before completion due to errors
    Pour ce qui est des rôles, RDB$ADMIN, cela à l'air de fonctionner
    PS C:\program files\firebird\firebird_3_0> ./gbak.exe -t -USER TOTO -password "Toto" employee d:\aenvoyer\employes.fbk
    gbak: ERROR:no permission for read-write access to database employee
    gbak:Exiting before completion due to errors
    PS C:\program files\firebird\firebird_3_0> ./gbak.exe -v -t -role 'RDB$ADMIN' -USER TOTO -password "Toto" employee d:\aenvoyer\employes.fbk
    gbak:readied database employee for backup
    gbak:creating file d:\aenvoyer\employes.fbk
    gbak:starting transaction
    .....
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    De mon côté j'ai aussi fait des tests que voici sous forme d'image car je ne sais pas comment récupérer les commandes Nom : Firebird3_Backup.jpg
Affichages : 249
Taille : 71,0 Ko où l'on voit l'absence de mot de passe et le résultat du backup

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    La seule raison que je vois à ça c'est l'utilisation d'un firebird embedded et non d'un serveur ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    maintenant une restauration sans mot de passe
    Nom : Firebird3_Restore.jpg
Affichages : 227
Taille : 86,5 Ko

  7. #7
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    La seule raison que je vois à ça c'est l'utilisation d'un firebird embedded et non d'un serveur ?
    Oui en effet, j'accède à une base située sur le poste contenant le serveur.
    C'est le cas le plus fréquent dans l'utilisation que je fais de Firebird.

  8. #8
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    l'utilisateur qui a créé la BDD, pas forcément SYSDBA
    A ce message je réponds par quelques tests reproduits ici :
    Je prends note de ces 3 propositions que je nomme :

    A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT RDB$OWNER_NAME AS DATABASE_OWNER FROM RDB$RELATIONS 
    WHERE (RDB$SYSTEM_FLAG = 1);
    B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM SEC$USERS
    C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT RDB$ADMIN TO <utilisateur>
    .
    Je fais les tests suivants avec Firebird 3.0 et une base ODS 12.0 nommée BASE.DB qui admet comme codes d'accès :
    SYSDBA STANDARD
    MYUSER MYPW
    mais donc le backup ne fonctionne que avec SYSDBA (même sans mot de passe)
    A retourne SYSDBA
    B retourne MYUSER (inattendu)
    C fonctionne à condition de se connecter avec SYSDBA
    A retourne toujours SYSDBA
    B retourne maintenant SYSDBA et MYUSER
    la sauvegarde ne fonctionne toujours pas avec MONUSER mais seulement avec SYSDBA
    BASE.DB devient BASE.BAK
    Je restaure la sauvegarde faite avec SYSDBA en utilisant MYUSER (et sans mot de passe)
    BASE_BAK devient BASE_R.DB
    A retourne toujours SYSDBA
    B Retourne uniquement MYUSER
    BASE_R.DB peut maintenant être sauvegardée par MYUSER mais ne peut plus l'être par SYSDBA. On ne peut y accéder qu'à partir de MYUSER

    D'après l'observation que ces tests sont fait en version embedded, j'en déduis que ces règles dépendent du contexte. Or je ne fais jamais de sauvegarde ni restauration à distance. On peut donc dire que mon "contexte" est toujours "embedded".
    Par conséquent il n'est pas évident de déterminer quel utilisateur peut faire la sauvegarde (puisque dans au moins un cas la commande B retourne 2 réponses) mais il semble que l'utilisateur qui restaure devient celui qui peut sauvegarder.

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par frantzgac Voir le message
    Oui en effet, j'accède à une base située sur le poste contenant le serveur.
    C'est le cas le plus fréquent dans l'utilisation que je fais de Firebird.
    Alors là, ce n'est pas clair.
    Exemple : le poste sur lequel je travaille
    Il y a un Firebird server installé (en fait 2, un FB3 sur le port 3050 et un FB4 sur le port 3054) , ce n'est pas une version embedded et je ne peux accéder à ma base de données qu'en indiquant user et mdp et ce également à partir d'autres postes de travail (Clients). Le serveur firebird est lancé en tant que service.

    J'ai une application dans le répertoire de laquelle est installée une copie des unités nécessaires (voir ceci) là, pas de mot de passe ou plutôt mot de passe totalement ignoré.

    car je ne sais pas comment récupérer les commandes
    je suis passé par windows powershell, une sélection et du copier-coller
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    J'utilise Firebird à titre personnel sur un poste qui fait à la fois serveur et client. J'installe en mode serveur.
    Ce n'est pas cette utilisation que me fait problème.
    Je distribue une application pour professionnels libéraux qui fait la même chose sur chaque poste individuel.
    Certains ont un poste serveur et plusieurs (dizaines de) clients (des écoles ou des cabinets polypraticiens). Sur les postes clients je n'installe que la partie client.
    J'offre aussi un service d'accès à distance (VPS-VPN) qui fait la même chose que la ligne précédente mais le serveur est sous linux (j'en ai déjà parlé sur ce forum)
    Toutes ces installations sont en Firebird 2.1 et j'ai intérêt à bien comprendre FB 3.x pour migrer progressivement toutes ces installations.
    Je sais déjà qu'il faudra conserver un environnement contenant FB 2.1 pour permettre les conversions des bases des anciens clients.

  11. #11
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 479
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    je suis passé par windows powershell, une sélection et du copier-coller
    Ah ! merci. j'avais complètement oublié le nom de cet utilitaire que j'avais pourtant utilisé...

Discussions similaires

  1. [Débat] Choisir InterBase/Firebird ou Microsoft SQL-SERVER ?
    Par asenaici dans le forum Décisions SGBD
    Réponses: 90
    Dernier message: 19/03/2009, 20h51
  2. [FIREBIRD]Drivers ODBC
    Par tripper.dim dans le forum Connexion aux bases de données
    Réponses: 10
    Dernier message: 24/04/2007, 11h02
  3. [firebird] Connexion impossible en lecture seule
    Par severine dans le forum Administration
    Réponses: 2
    Dernier message: 01/08/2003, 15h35
  4. Refus d'accès à une base Firebird
    Par severine dans le forum Installation
    Réponses: 18
    Dernier message: 04/06/2003, 16h03
  5. Etude des "styles" de programmation
    Par RiRi51 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/03/2003, 19h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo