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

PostgreSQL Discussion :

limiter l'acces a un user a tout une base/schema en 1 fois


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut limiter l'acces a un user a tout une base/schema en 1 fois
    Bonjour,

    Je voudrais savoir s'il est possible de faire qu'un utilisateur ("toto") ne puisse que lire des lignes sur toute ma base ou sur tout un schema.

    Est-ce qu'il y a un autre moyen que de me taper plein de :
    REVOKE INSERT, UPDATE, DELETE ON TABLE table1 FROM toto;
    REVOKE INSERT, UPDATE, DELETE ON TABLE table2 FROM toto;
    ...

    l'idéal aurait été : REVOKE INSERT, UPDATE, DELETE ON ALL TABLE FROM toto;
    mais ca ne marche pas malheureusement...

    Si il y a une solution avec GRANT je suis aussi preneur.
    Merci.

    conf: Postgre 7.4, debian, Eclipse 3.1.1 avec Quantum DB ...

  2. #2
    Invité
    Invité(e)
    Par défaut Doc
    Bonjour,

    tu peux utiliser :
    REVOKE ... ON DATABASE nom_base FROM nom_utilisateur ...
    et
    GRANT ... ON DATABASE nombase TO nomutilisateur ...
    Dernière modification par Domi2 ; 15/07/2011 à 17h00.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    je vois pas bien ce que je peux faire avec REVOKE ... ON DATABASE ...
    à part l'empêcher de créer des schema

    Par contre, REVOKE ... ON SCHEMA ... semble plus interessant.

    En faisant REVOKE CREATE ON SCHEMA schema1 FROM toto; j'empeche toto de créer des nouvelles tables mais il peut toujours ajouter,modifier ou supprimer des tuples dans les tables qui existent déjà.
    Et si je met USAGE, la il ne peut plus lire les tables du tout.

    Or je voudrais qu'il puisse juste lire les données et non les modifier/ajouter/supprimer.

  4. #4
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut droits sur une base complète
    Bonjour,
    est-ce que tu as pu résoudre ton problème?
    Je suis dans le même cas que toi, et rien trouvé pour le moment

    A+

  5. #5
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut up
    up

  6. #6
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    pour info, j'avais résolu le problème en créant un script qui reprenait pour chaque table les privilèges pour mon user : REVOKE ALL PRIVILEGES ON TABLE TO USER; puis GRANT SELECT ON TABLE TO USER; si je voulais le mettre en lecture seule.

    Cependant, ceci n'étant pas très évolutif (problème lors de l'ajout de nouvelles tables), j'ai créé un script CGI qui récupère le nom de toutes les tables de la base et qui pour chaque table modifie les droits en lecture ou modification suivant le choix fait sur le formulaire.
    cependant, ce n'est pas une solution "très propre", le sujet reste ouvert...

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Et seraits-tu ok, pour nous fournir ton script?

    Merci

    MaitrePylos

  8. #8
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    Et seraits-tu ok, pour nous fournir ton script?
    Pas de problème :
    je l'ai quelque peu modifié pour l'occasion et ne l'ai retesté mais devrait fonctionner
    les variables à modifier sont en début de programme (noms des bases de données, serveur de BDD, compte dont les privilèges sont à modifier, identifiants à utiliser pour se connecter aux BDD et effectuer les modifs).

    Il manque la feuille de style...bref la présentation n'est pas au point.

    n'hésitez pas si vous avez des questions
    A+
    Fichiers attachés Fichiers attachés

  9. #9
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Bonjour et merci de ton aide, je ne connais pas perl et j'ai ceci comme message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "my" variable $table masks earlier declaration in same scope at ./change_postgresql_rights.pl line 170.
    main::PrintAccueil() called too early to check prototype at ./change_postgresql_rights.pl line 127.
    syntax error at ./change_postgresql_rights.pl line 102, near "my "
    Global symbol "$message" requires explicit package name at ./change_postgresql_rights.pl line 102.
    Execution of ./change_postgresql_rights.pl aborted due to compilation errors.
    Peux-tu encore m'aider?

    merci

  10. #10
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    "my" variable $table masks earlier declaration in same scope at ./change_postgresql_rights.pl line 170.
    Supprime le mot "my" des lignes 161 et 170 et rajoutes la ligne my $table; en ligne 158
    syntax error at ./change_postgresql_rights.pl line 102, near "my "
    Global symbol "$message" requires explicit package name at ./change_postgresql_rights.pl line 102.
    oups, j'ai oublié un ";" à la fin de la ligne :
    my $password = 'mot2passe'

    désolé pour ces erreurs...

  11. #11
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Bonjour, je sais je pousse un peu là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    main::PrintAccueil() called too early to check prototype at ./change_postgresql_rights.pl line 127.
    Global symbol "@BDDs" requires explicit package name at ./change_postgresql_rights.pl line 253.
    Global symbol "$dbhost" requires explicit package name at ./change_postgresql_rights.pl line 253.
    Execution of ./change_postgresql_rights.pl aborted due to compilation errors.

  12. #12
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    Bonjour, je sais je pousse un peu là
    : non pas de problème
    désolé j'ai fait de modifs rapido pour mettre ce script en ligne et ça marche pas!!

    mais bon on va y arriver :
    ajouter les lignes suivantes au début de la fonction PrintAccueil :
    our @BDDs;
    our $dbhost;
    remplacer les lignes :
    my @BDDs; par our @BDDs;
    my $dbhost; par our $dbhost;

  13. #13
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Heu je pense que je m'y prend mal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    "our" variable @BDDs masks earlier declaration in same scope at ./change_postgresql_rights.pl line 128.
    "our" variable $dbhost masks earlier declaration in same scope at ./change_postgresql_rights.pl line 129.
    Variable "@BDDs" is not imported at ./change_postgresql_rights.pl line 255.
    Variable "$dbhost" is not imported at ./change_postgresql_rights.pl line 255.
    main::PrintAccueil() called too early to check prototype at ./change_postgresql_rights.pl line 127.
    Global symbol "@BDDs" requires explicit package name at ./change_postgresql_rights.pl line 255.
    Global symbol "$dbhost" requires explicit package name at ./change_postgresql_rights.pl line 255.
    Execution of ./change_postgresql_rights.pl aborted due to compilation errors.

  14. #14
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    moi je l'ai testé en ligne de commande chez moi et je n'ai plus d'erreur fatale avec ce fichier :
    Fichiers attachés Fichiers attachés

  15. #15
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Je n'ai plus non plus d'erreur fatal en ligne de commande

    Par contre je n'arrive pas à l'afficher, il veut toujours l'ouvrir avec less.

    J'ai installer apache2 pour perl, mais rien ni fais!

  16. #16
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    Par contre je n'arrive pas à l'afficher, il veut toujours l'ouvrir avec less.
    J'ai installer apache2 pour perl, mais rien ni fais!
    comment ça il veut l'ouvrir avec less?

    quand tu essayes d'y accéder via ton navigateur en pointant sur le fichier .pl qui est sur ton serveur?
    Es-tu sûr que tu as bien configuré apache pour que perl sois interprété et non pas affiché?

  17. #17
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    ben, je l'ai même balancer chez OVH, et il me fais le même coup ?

  18. #18
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    donne moi le lien vers ce fichier chez OVH en MP que je regarde cela...
    ceci dit, es-tu sûr que OVH supporte perl....PHP c'est sûr, mais perl un peu moins

  19. #19
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Voila le fichier, je ne suis pas sur pour les commentaires

  20. #20
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    essayes avec ce fichier :
    j'ai viré du code uniquement les choses associées au module POD
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 8
    Dernier message: 11/02/2015, 10h31
  2. Réponses: 3
    Dernier message: 10/03/2009, 20h06
  3. Réponses: 1
    Dernier message: 31/01/2007, 09h25
  4. [Sécurité] limitation d'accès d'un user
    Par marwaza22 dans le forum Oracle
    Réponses: 6
    Dernier message: 24/07/2006, 17h51
  5. verifier si des user sont connéctés à une base Paradox
    Par JCDC dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/11/2005, 13h28

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