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

SQL Firebird Discussion :

Problème de gestion de droit sur un générateur


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 674
    Points : 925
    Points
    925
    Par défaut Problème de gestion de droit sur un générateur
    Bonjour à tous

    Je viens de voir un comportement de Firebird 3.0.6 que je ne comprend pas bien, je m'explique.

    1- je crée un utilisateur (CORWIN) a qui je donne les droits suivant suivant sur un générateur (MESCOMMANDES_NUMCMDE_GEN):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE USER CORWIN PASSWORD '1234';
    GRANT USAGE ON SEQUENCE MESCOMMANDES_NUMCMDE_GEN TO "CORWIN" WITH GRANT OPTION;
    COMMIT;
    à l'intérieur de mon application en entant connecté a ma base avec ce user, la commande suivante échoue lamentablement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET GENERATOR MESCOMMANDES_NUMCMDE_GEN TO 33
    et voici le message d'erreur :
    Unsuccessful metadata update
    SET GENERATOR MES COMMANDES_NUMCMDE_GEN failed
    no permission for Alter access to GENERATOR MES COMMANDES_NUMCMDE_GEN
    j'ai besoin d'aide pour comprendre et résoudre ce problème ! je suis à l'arrêt !

    Merci à tous

  2. #2
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 674
    Points : 925
    Points
    925
    Par défaut
    La je tente de migrer vers la 3.0.7 pour voir ce qui se passe !

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 674
    Points : 925
    Points
    925
    Par défaut
    1- Backup base de données avec la version 3.0.6
    2- désinstallation de la version 3.0.6
    3- installation de la version 3.0.7
    4- Restauration base de données avec la version 3.0.7
    5- Création d'un nouveau utilisateur avec droit sur le générateur !

    Mais le problème persiste

    Merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 674
    Points : 925
    Points
    925
    Par défaut
    Apparemment c'est un soucis qui na pas encore été pris en compte ?
    https://www.mail-archive.com/firebir.../msg18413.html

    En effet le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GRANT USAGE ON SEQUENCE MESCOMMANDES_NUMCMDE_GEN TO "CORWIN" WITH GRANT OPTION;
    Ne donne pas accès en modification sur la SEQUENCE, j'ai essayiez le GRANT ALTER...... Erreur !

    j'ai donc utilisé une des solutions proposées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select gen_id(Nom_Sequence, <Increment> - gen_id(Nom_sequence, 0)) from rdb$database
    Espérant trouver une solution plus propre ! (je tente maintenant avec l'attribution par les rôles)

    Merci

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 674
    Points : 925
    Points
    925
    Par défaut
    Je viens de tester avec l'octroi des permissions par les rôles ca ne marche pas.
    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    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 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    j'ai essayé ceci , pour être franc j'avais lu ceci j'ai lu ceci auparavant https://www.ibphoenix.com/resources/...how_to/doc_473

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT USAGE ON SEQUENCE TESTSEQ1 TO PUBLIC
    ainsi cela fonctionne tous les utilisateurs ont accés à la séquence TOTO en lecture

    j'ai ensuite vérifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT a.RDB$USER, a.RDB$GRANTOR, a.RDB$PRIVILEGE, a.RDB$GRANT_OPTION, a.RDB$RELATION_NAME, a.RDB$FIELD_NAME, a.RDB$USER_TYPE, a.RDB$OBJECT_TYPE, a.RDB$DB_KEY
    FROM RDB$USER_PRIVILEGES a
    where a.RDB$RELATION_NAME='TESTSEQ1'
    SYSDBA SYSDBA G 1 TESTSEQ1 [null] 8 14 00000012:00000d35
    PUBLIC SYSDBA G 0 TESTSEQ1 [null] 8 14 00000012:00000d36
    j'ai ensuite testé la suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REVOKE USAGE ON GENERATOR TESTSEQ1 FROM PUBLIC
    je me suis ensuite penché sur un utilisateur particulier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT USAGE ON GENERATOR TESTSEQ1 TO USER TATA;
    Même succès mais toujours en lecture seulement !

    En regardant les release notes (hè oui, de temps en temps il faut les lire )
    In Firebird 3.0.0, only USAGE permissions for exceptions (CORE-2884) and generators/sequences (gen_id, next value for: CORE-2553) are enforced.
    The system tables (RDB$*) are now read-only. Attempting any DDL or insert/update/delete statement on them will be rejected.
    pourquoi j'indique cette citation ? Parce que les valeurs des SEQUENCE/GENERATEUR sont dans une table système.

    Il semblerai donc bien que seul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select gen_id(Nom_Sequence, <Increment> - gen_id(Nom_sequence, 0)) from rdb$database
    puisse se faire, ou pour un incrément de 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      SELECT NEXT VALUE FOR Nom_Sequence FROM RDB$DATABASE
    et encore faut-il avoir l'USAGE
    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

  7. #7
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 674
    Points : 925
    Points
    925
    Par défaut
    Bonjour @SergioMaster
    Merci pour toutes ses précisions et la confirmation de la solution finale
    Pour la documentation :
    https://www.firebirdsql.org/pdfmanua...sqlsyntax.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Problème de gestion des droits sur une base ODBC (SQL Server)
    Par alexandre.g dans le forum Sécurité
    Réponses: 0
    Dernier message: 16/06/2014, 18h35
  2. Réponses: 2
    Dernier message: 22/01/2009, 11h28
  3. [MCD]Gestion des droits sur des forums
    Par Vivian Pennel dans le forum Schéma
    Réponses: 1
    Dernier message: 01/05/2007, 17h43
  4. gestion des droits sur un tableau excel 2007
    Par kev0631 dans le forum Excel
    Réponses: 1
    Dernier message: 20/04/2007, 09h54
  5. [c#] gestion des droits sur les fichiers
    Par mrrenard dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/11/2006, 12h50

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