Vous n'êtes pas identifié(e).

#1 24/08/2010 07:49:59

pcsystemd
Membre

Droit SELECT sur une Base pour un utilisateur.

Bonjour,

je sais donner les droits sur une table a un utilisateur :

GRANT SELECT ON matable TO user;

Mais comment fait on pour donner le droit SELECT sur toute ma base a cet user car j'ai essayé cela mais cela ne marche pas :

GRANT SELECT ON DATABASE mabase TO user;

Merci de votre aide

Hors ligne

#2 24/08/2010 08:04:50

Marc Cousin
Membre

Re : Droit SELECT sur une Base pour un utilisateur.

En fait, GRANT xxx ON DATABASE donne des droits sur l'objet DATABASE, pas sur son contenu, le seul droit disponible sur un objet database étant celui de se connecter. Pour donner les droits à toutes les tables d'une base (je présume que c'est ce que vous cherchez à faire), il n'y a qu'une solution, à l'heure actuelle : générer un script. En 9.0, il y aura une syntaxe permettant de faire ça automatiquement.
Par exemple, cette commande générera une série de grant pour tous les objets du schéma public:

SELECT 'GRANT SELECT ON ' || schemaname || '.' || tablename ||  ' TO toto;' from pg_tables where schemaname = 'public';

Il n'y a plus qu'à copier coller le résultat ou l'envoyer dans un fichier, et le rééxécuter dans la foulée.

Évidemment, si tous les objets ne sont pas dans le schéma public, il faudra modifier la clause where.

Dernière modification par Marc Cousin (24/08/2010 08:05:32)


Marc.

Hors ligne

#3 24/08/2010 08:17:07

gleu
Administrateur

Re : Droit SELECT sur une Base pour un utilisateur.

Pour les bases de données, l n'y a pas que le droit CONNECT. Il y a aussi le droit CREATE et TEMPORARY. Mais bon, c'est juste pour dire quelque chose car je suis entièrement d'accord sur le reste smile


Guillaume.

Hors ligne

#4 24/08/2010 08:53:57

pcsystemd
Membre

Re : Droit SELECT sur une Base pour un utilisateur.

Merci beaucoup Marc pour vos informations très claires et merci également gleu pour le complément d'infos.

Hors ligne

Pied de page des forums