Tâche #33943
Scénario #33942: rendre efficiente la saisie de plusieurs permissions pour des roles postgresql
rendre efficiente la saisie de plusieurs permissions pour des roles postgresql
100%
Description
le dictionnaire 22_postgresql permet de declarer, via la variable multi pg_role_perms, diverses permissions pour des roles de connection. Ces directives sont implémentées ensuite dans le pg_hba.conf via le script /usr/share/eole/posttemplate/01-eoledb.
Sur un seth 2.7.2, si une permission est déclarée, elle est bien prise en compte. Si plusieurs sont déclarées, seule la première est implémentée.
Révisions associées
gestion correct des lignes dedupliqués (ref #33943)
Historique
#1 Mis à jour par Vincent Chavanon il y a environ 2 ans
- Version cible mis à Prestation Cadoles MTE 2022 10-15
#2 Mis à jour par Vincent Chavanon il y a environ 2 ans
- Tâche parente mis à #33942
#3 Mis à jour par Emmanuel GARETTE il y a environ 2 ans
Je ne reproduit pas.
Sur un Zéphir + eole-db en applicant ce script :
from creole.loader import creole_loader from creole.loader import creole_loader, config_save_values c = creole_loader(rw=True) c.creole.postgresql.pg_additional_role = 'oui' c.creole.postgresql.pg_additional_role_name.pg_additional_role_name = ["adl"] c.creole.postgresql.pg_additional_role_name.pg_additional_role_pwd[0] = "manuelle" c.creole.postgresql.pg_additional_role_name.pg_additional_role_superuser[0] = "oui" c.creole.postgresql.set_pg_role_perms = 'oui' c.creole.postgresql.pg_role_perms.pg_role_perms = ['un', 'deux'] c.creole.postgresql.pg_role_perms.pg_role_perms_name[0] = 'un' c.creole.postgresql.pg_role_perms.pg_role_perms_object[0] = 'all' c.creole.postgresql.pg_role_perms.pg_role_perms_source_ip[0] = '0.0.0.0' c.creole.postgresql.pg_role_perms.pg_role_perms_source_netmask[0] = '0.0.0.0' c.creole.postgresql.pg_role_perms.pg_role_perms_name[1] = 'deux' c.creole.postgresql.pg_role_perms.pg_role_perms_object[1] = 'all' c.creole.postgresql.pg_role_perms.pg_role_perms_source_ip[1] = '0.0.0.0' c.creole.postgresql.pg_role_perms.pg_role_perms_source_netmask[1] = '0.0.0.0' config_save_values(c, 'creole')
J'ai bien :
root@zephir:~# cat /etc/postgresql/12/main/pg_hba.conf local all postgres md5 local postgres postgres md5 local zephir zephir md5 host all un 0.0.0.0 0.0.0.0 md5 host all deux 0.0.0.0 0.0.0.0 md5
#4 Mis à jour par Vincent Chavanon il y a environ 2 ans
(...)
- "local" is for Unix domain socket connections only
local all postgres ident map=pg_map
local all all password
hostssl all all 127.0.0.1/32 password - IPv4 local connections:
- IPv6 local connections:
- host all all ::1/128 password
- distant_users
local zephir zephir md5
hostssl all all 0.0.0.0 0.0.0.0 md5
hostssl all all 10.79.34.32 255.255.255.224 md5
mais à l'issue d'un reconfigure, et le passage de /usr/share/eole/posttemplate/01-eoledb, on a plus que :
local all postgres md5
local adl adl md5
local postgres postgres md5
local zephir zephir md5
local template_postgis postgis md5
hostssl all all 10.79.34.32 255.255.255.224 md5
#5 Mis à jour par Emmanuel GARETTE il y a environ 2 ans
On peut reproduire en faisant :
from creole.loader import creole_loader from creole.loader import creole_loader, config_save_values c = creole_loader(rw=True) c.creole.postgresql.pg_additional_role = 'oui' c.creole.postgresql.pg_additional_role_name.pg_additional_role_name = ["adl"] c.creole.postgresql.pg_additional_role_name.pg_additional_role_pwd[0] = "manuelle" c.creole.postgresql.pg_additional_role_name.pg_additional_role_superuser[0] = "oui" c.creole.postgresql.set_pg_role_perms = 'oui' c.creole.postgresql.pg_role_perms.pg_role_perms = ['un', 'deux'] c.creole.postgresql.pg_role_perms.pg_role_perms_name[0] = 'all' c.creole.postgresql.pg_role_perms.pg_role_perms_object[0] = 'all' c.creole.postgresql.pg_role_perms.pg_role_perms_source_ip[0] = '0.0.0.0' c.creole.postgresql.pg_role_perms.pg_role_perms_source_netmask[0] = '0.0.0.0' c.creole.postgresql.pg_role_perms.pg_role_perms_name[1] = 'all' c.creole.postgresql.pg_role_perms.pg_role_perms_object[1] = 'all' c.creole.postgresql.pg_role_perms.pg_role_perms_source_ip[1] = '0.0.0.0' c.creole.postgresql.pg_role_perms.pg_role_perms_source_netmask[1] = '0.0.0.0' config_save_values(c, 'creole')
#6 Mis à jour par Emmanuel GARETTE il y a environ 2 ans
- Statut changé de Nouveau à Résolu
- % réalisé changé de 0 à 100
#7 Mis à jour par Vincent Chavanon il y a environ 2 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0
#8 Mis à jour par Joël Cuissinat il y a environ 2 ans
- Temps estimé mis à 0.00 h
eole-db$ git branch -r --contains 81a63ba6 origin/2.7.2/master origin/2.8.0/master origin/2.8.1/master origin/HEAD -> origin/master origin/dist/eole/2.7.2/master origin/dist/eole/2.8.0/master origin/dist/eole/2.8.1/master origin/master