Re: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?

From: Sébastien Lardière <sebastien(at)lardiere(dot)net>
To: celati Laurent <laurent(dot)celati(at)gmail(dot)com>, pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?
Date: 2022-02-21 14:22:38
Message-ID: 605c4693-cb2a-bd18-2f7e-395b1a890c76@lardiere.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

On 17/02/2022 09:30, celati Laurent wrote:
> Bonjour,
>
> Je me permets de reformuler peut être plus simplement ma question.
> Une personne saurait elle comment donner les privilèges à un rôle
> SuperUser afin que lorsque il créé une nouvelle table,que ce soit dans
> le schema public ou un autre schema, elle sera par default visible,
> 'sélectionnable' par tout le monde (les autres rôles superUser ET les
> rôles simples utilisateurs qui ont uniquement les privilèges 'usage'
> sur les schemas, privilèges ''select' sur les tables).
> En espérant avoir été plus clair.

Bonjour,

Le plus simple est de définir des droits par défaut pour chacun des
rôles superuser, avec l'option FOR ROLE de la commande ALTER DEFAULT
PRIVILEGES :

ALTER DEFAULT PRIVILEGES FOR ROLE YYY IN SCHEMA XXX GRANT SELECT ON TABLES TO "user";

Comme indiqué dans la commande :
https://www.postgresql.org/docs/14/sql-alterdefaultprivileges.html

Cordialement,
Sébastien

> Merci;
>
> Le mer. 16 févr. 2022 à 15:44, celati Laurent
> <laurent(dot)celati(at)gmail(dot)com> a écrit :
>
> Bonjour,
>
> Je travaille avec qgis et postgis.
>
> Via mon role superUser j'ai defini différents roles pour plusieurs
> "simple" utilisateurs.Ils ont
> les droits en lecture/select/usage sur toute table deja existante.
> Et egalement sur toute table qui sera générée à l'avenir (DEFAULT
> PRIVILEGE).
> Voici ma methode :
>
>
> Code:
>
> --POUR SCHEMA PUBLIC
> GRANT USAGE ON SCHEMA public TO "user";
> GRANT SELECT ON ALL TABLES IN SCHEMA public TO "user";
> ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO "user";
>
>
> --POUR AUTRE SCHEMA XXX
> GRANT USAGE ON SCHEMA XXXX TO "user";
> GRANT SELECT ON ALL TABLES IN SCHEMA XXX TO "user";
> ALTER DEFAULT PRIVILEGES IN SCHEMA XXX GRANT SELECT ON TABLES TO "user";
>
> Cette procedure fonctionne lorsque je realise moi meme l'opération
> (lorsque je suis "grantor").
> Par contre, lorsque mon collègue, lui meme admin (SuperUser) tente
> une creation de table, avec son propre role de connexion, la table
> est bien créée mais est uniquement
> visible par ceux qui ont un role de connexion superUser : les
> utilisateurs ne semblent pas pouvoir, , par defaut,visualiser,
> acceder aux nouvelles tables
> créées par mon collègue.
>
> Une personne pense avoir une piste de resolution?
> Merci.
>

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Florent Jardin 2022-03-29 08:06:43 Meetup PostgreSQL Lille : jeudi 14 avril 2022
Previous Message Alain Benard 2022-02-17 15:01:02 RE: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?