Vous n'êtes pas identifié(e).
Pages : 1
Bonjour
Je travaille actuellement sur une base de données PostGIS, avec une outil cartographique de type QuantumGIS.
Au moment de la création de ma base de données, j'ai crée un rôle de connexion que j'ai nommé SDE, avec les critères suivant
-- Role: "sde"
-- DROP ROLE sde;
CREATE ROLE sde LOGIN
ENCRYPTED PASSWORD 'md51e9484aace238e7cb2609130fd87646e'
SUPERUSER NOINHERIT CREATEDB CREATEROLE;
Une fois ce rôle crée, j'ai mis en place un schéma portant le même nom avec les critères suivant
-- Schema: "sde"
-- DROP SCHEMA sde;
CREATE SCHEMA sde
AUTHORIZATION sde;
GRANT ALL ON SCHEMA sde TO sde;
GRANT ALL ON SCHEMA sde TO public;
Afin que mon utilisateur puisse afficher dans QuantumGIS, les données disponibles dans la base de données, j'ai affecté les privilèges de Select, insert, delete et update, sur la table public.geometry_columns
Mon problème est le suivant, je souhaite mettre en place un nouvel utilisateur, ne disposant que de droits limité sur ma base, disons uniquement les droits Select, mais je rencontre un problème.
En effet, autant je ne rencontre de problème lors de la création de mon rôle de connexion, ni dans dans la mise en place du schéma associé, si bien que lorsque je teste ma nouvelle connexion depuis QuantumGIS, l'application m'informe que la connexion est réussie.
En revanche lorsque j'essaie d'afficher les données disponibles dans ma base de données avec mon nouvel utilisateur, le message d'erreur apparait m'informant que je ne dispose pas de droits suffisants sur geometry columns.
Je sens bien que le problème vient du fait du manque de privilège sur la dite table mais le problème vient du fait que je n'arrive pas à affecter le privilège SELECT à mon nouvel utilisateur
Si quelqu'un a une idée, je suis preneur
Merci
Hors ligne
Pourrait-on avoir le message d'erreur réel et exact que l'application a lorsqu'elle essaie d'accéder à cette table avec cet utilisateur ?
Guillaume.
Hors ligne
Bonjour
Je ne sais pas si cela est possible de joindre un fichier à mon message.
Etant donné que je ne trouve la manipulation, voici le message exact que me renvoie l'application
La connexion à la base de données à réussi, mais aucune table n'est accessible. Le message d'erreur de la base de données est
ERROR : permission denied for relation geometry_columns
et la deuxième fenêtre affiche le message suivant
La connexion à la base de données à réussi, mais aucune table n'est accessible.
Veuillez vérifier si vous avez le droit d'effectuer une commande SELECT sur une table ayant une géométrie POSTGIS
En ce qui concerne, cette deuxième fenêtre, j'ai réussi à solutionner le problème en accordant au nouvel utilisateur la possibilité de faire un SELECT sur une des tables en effectuant la commande suivante
Grant SELECT ON <nom_table> to jerome
En revanche je ne vois comment je peux faire pour ne plus avoir le premier message d'erreur.
Dans la même de problème, est-ce qu'il est possible d'affecter des privilièges de SELECT à toutes les tables contenues dans ma table et ce en une seule fois.
Merci pour vos réponses
Hors ligne
En revanche je ne vois comment je peux faire pour ne plus avoir le premier message d'erreur.
Il faut faire la même chose, mais pour la table indiquée :
GRANT SELECT ON geometry_columns TO utilisateur;
Dans la même de problème, est-ce qu'il est possible d'affecter des privilièges de SELECT à toutes les tables contenues dans ma table et ce en une seule fois.
Il n'existe pas de requête SQL pour cela. Il faut les faire une par une, ou faire un script qui recupère la liste des tables, voir même utiliser le gestionnaire des droits de pgAdmin.
Guillaume.
Hors ligne
Merci beaucoup pour ta réponse.
Maintenant que je connais la réponse je me dis que cela était assez simple en fait.
Dernière question, est ce que la création d'un schéma pour ce nouvel utilisateur est obligatoire, si cet utilisateur ne peut faire que du SELECT sur les tables de la base de données.
Merci
Hors ligne
Un schéma n'est en aucun cas obligatoire.
Guillaume.
Hors ligne
Bonjour gleu
Dans ton précédent message,
Il n'existe pas de requête SQL pour cela. Il faut les faire une par une, ou faire un script qui recupère la liste des tables, voir même utiliser le gestionnaire des droits de pgAdmin.
Tu évoques un gestionnaire de droits inclus à PgAdmin.
Est ce pour toi ce gestionnaire correspond à l'onglet Droits, que tu as accèdes en faisant un clic droit sur table, qui te permet gérer les privilèges table par table, ou est ce que tu fais référence à un gestionnaire plus général, qui permet de gérer les privilèges sur un ensemble de table
Merci pour ta réponse
Hors ligne
Je parle d'un gestionnaire plus général qui permet de modifier les droits sur plueisurs tables en même temps. Il est disponible dans le menu Outils/Assistant de gestion des droits.
Guillaume.
Hors ligne
Merci je vais tester cette outil de cet après midi
Hors ligne
Pages : 1