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

Lists: pgsql-fr-generale
From: celati Laurent <laurent(dot)celati(at)gmail(dot)com>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?
Date: 2022-02-16 14:44:37
Message-ID: CAHByMH1U9+u-gBDqCrT4Oxs==_7StVRpgQBeuyJgaSxi98WELg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg토토 베이SQL : Postg토토

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.


From: celati Laurent <laurent(dot)celati(at)gmail(dot)com>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?
Date: 2022-02-17 08:30:54
Message-ID: CAHByMH0YnWjcNavmCwpfotdO41xNJQ7SQ_VZ-FWtT2S289dLDA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

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.
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.
>


From: Olivier GENTRIC <olivier(dot)gentric(at)gmail(dot)com>
To: celati Laurent <laurent(dot)celati(at)gmail(dot)com>
Cc: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?
Date: 2022-02-17 10:00:00
Message-ID: CAJMG3Zf9WJDhc3pi04PeJTwe0ibr6xxi5JkNRrEJdmScn2SZXQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,

Créer un rôle qui ne soit pas utilisé pour une connexion utilisateur,
mais juste pour centraliser les privilèges et octroyer les privilèges
générés par défaut à ce rôle.

Ensuite il suffit d'octroyer ce rôle aux comptes utilisateurs qui en ont
besoin.

En espérant que cela résolve votre problème.

Cordialement

Olivier

Le jeu. 17 févr. 2022, 10:40, celati Laurent <laurent(dot)celati(at)gmail(dot)com> a
écrit :

> 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.
> 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.
>>
>


From: Alain Benard <alain(dot)benard(at)inrae(dot)fr>
To: celati Laurent <laurent(dot)celati(at)gmail(dot)com>, "pgsql-fr-generale(at)postgresql(dot)org" <pgsql-fr-generale(at)postgresql(dot)org>
Subject: RE: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?
Date: 2022-02-17 15:01:02
Message-ID: f0ce4e4918e64c1e8ba11e9a4c074956@IDFDCPRIPEXMU06.inra.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,
En fait la définition des droits par défaut (ALTER DEFAULT PRIVILEGES) s’applique au compte qui l’a exécuté donc uniquement à ton compte.
Dans la doc on trouve : You can change default privileges only for objects that will be created by yourself or by roles that you are a member of.
Il y a donc 3 pistes :

· Les autres comptes s’appliquent des droits par défaut (ALTER DEFAULT PRIVILEGES) et dans ce cas tout ce qu’il créeront ensuite sera affecté.

· Tu inscris ton role utilisateur comme membre du role des autres administrateurs XXX et tu utilises la version ALTER DEFAULT PRIVILEGE FOR ROLE XXX

· Tu rejoues chaque soir GRANT SELECT ON ALL TABLES IN SCHEMA public TO "user"; …
Espérant que c’est clair.
Bonne journée.
Alain.

De : celati Laurent <laurent(dot)celati(at)gmail(dot)com>
Envoyé : jeudi 17 février 2022 09:31
À : pgsql-fr-generale(at)postgresql(dot)org
Objet : Re: Postgresql : Visibilité de la table fonction du Grantor/SuperUser?

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.
Merci;

Le mer. 16 févr. 2022 à 15:44, celati Laurent <laurent(dot)celati(at)gmail(dot)com<mailto: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.


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
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 :
/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.
>