Replies: 3 comments
-
Bonjour Nicolas, il semble que vous souhaiter gérer vos habilitations dynamiquement dans ldap2pg. Votre besoin semble plus global que ça. |
Beta Was this translation helpful? Give feedback.
-
Bonjour Etienne, En effet, le sujet évoqué n'est qu'une conséquence d'un mode de fonctionnement que nous souhaiterions avoir. |
Beta Was this translation helpful? Give feedback.
-
Bonjour Etienne, Voici les détails: ContexteLe personnel est autonome sur certaines bases de données sur la gestion des schémas et des tables. Dans ce fonctionnement, on distingue deux cas:
Le personnel est réparti dans 3 rôles:
Pour expliquer les problèmes rencontrés, je me focaliserai sur une seule base de données que je nommerai Voici la matrice par défaut qui est définie sur l'ensemble des schémas:
Voici la matrice par défaut qui est définie sur l'ensemble des tables:
Voici enfin des droits spécifiques que l'on souhaite attribué aux tables du schéma
Les tests ont été faits avec la version 6.3-rc.1 (j'ai une erreur Test1ldap2pg.ymlprivileges:
p_usage_on_schema:
- type: USAGE
on: SCHEMA
p_create_on_schema:
- p_usage_on_schema
- type: CREATE
on: SCHEMA
p_select_on_tables:
- type: SELECT
on: ALL TABLES IN SCHEMA
p_insert_on_tables:
- p_select_on_tables
- type: INSERT
on: ALL TABLES IN SCHEMA
p_all_on_tables:
- __all_on_tables__
rules:
- description: "Rôles Test"
roles:
- name: admin
options: NOLOGIN
parent: contrib
- name: contrib
options: NOLOGIN
parent: reader
- name: reader
options: NOLOGIN
grant:
- privileges:
- p_select_on_tables
- p_usage_on_schema
roles: reader
database: db1
- privileges:
- p_insert_on_tables
- p_usage_on_schema
roles: contrib
database: db1
- privilege:
- p_all_on_tables
- p_create_on_schema
roles: admin
database: db1
- privilege:
- p_select_on_tables
roles: contrib
database: db1
schema: schema1 J'applique la configuration ci-dessus.
Test2ldap2pg.ymlprivileges:
p_usage_on_schema:
- type: USAGE
on: SCHEMA
p_create_on_schema:
- p_usage_on_schema
- type: CREATE
on: SCHEMA
p_default_select_on_tables:
- type: SELECT
on: GLOBAL DEFAULT
object: TABLES
p_default_insert_on_tables:
- p_default_select_on_tables
- type: INSERT
on: GLOBAL DEFAULT
object: TABLES
p_all_on_tables:
- __all_on_tables__
rules:
- description: "Rôles Test"
roles:
- name: admin
options: NOLOGIN
parent: contrib
- name: contrib
options: NOLOGIN
parent: reader
- name: reader
options: NOLOGIN
- privileges:
- p_default_select_on_tables
- p_usage_on_schema
roles: reader
database: db1
owner: admin
- privileges:
- p_default_insert_on_tables
- p_usage_on_schema
roles: contrib
database: db1
owner: admin
- privilege:
- p_all_on_tables
- p_create_on_schema
roles: admin
database: db1
- privilege:
- p_select_on_tables
roles:
- contrib
- reader
database: db1
schema: schema1 J'applique une première fois la configuration ci-dessus. set role admin;
CREATE TABLE schema1.test
(
id integer
);
CREATE TABLE schema2.test
(
id integer
); Les droits sont bien appliqués sur les deux tables et respectent la règles par défaut.
Je relance ldap2pg pour appliquer les droits spécifiques sur le schéma
Le schéma
ConclusionLa superposition des règles ne me permet pas de définir moins de droits à un rôle par rapport aux règles par défaut. Par contre, définir plus de droits dans une règle spécifique est possible. |
Beta Was this translation helpful? Give feedback.
-
What do you want?
Hi,
I want to apply rule to all schema except two.
I have a default rule for all schemas.
And I want to apply specific rule on two schemas.
Schemas are created dynamically by users and I don't want to write a rules for each schema.
Example :
If I do that,
my_role
keepwriter
privilege onmy_schema
It can be usefull to exclude some schemas with a character, like this:
Or use custom sql to select schemas other than
schemas_query
I can exclude schemas in
schemas_query
but I want them stay managedIs there another way to do that ?
Beta Was this translation helpful? Give feedback.
All reactions