2016-12-15 4 views
5

Le documentation pour le module postgresql_user sur la façon dont les privilèges d'un utilisateur doivent être définis des conflits avec lui-même en ce qui concerne le format. Le format est décrit comme tel dans le tableau des options:Ansible « postgresql_user » paramètre module « PRIV » syntaxe clearification

priv | PostgreSQL privileges string in the format: table:priv1,priv2 

Cependant, les exemples donnés ci-dessous utilisent un autre format

priv: "CONNECT/products:ALL" 
priv: "ALL/products:ALL" 
# Example privileges string format 
INSERT,UPDATE/table:SELECT/anothertable:ALL 

Le blog Ansible Loves PostgreSQL mentionne encore un autre format:

priv: Privileges in “priv1/priv2” or table privileges in “table:priv1,priv2,…” format 

Je vais avoir du mal à créer des utilisateurs avec un accès en lecture seule, par exemple SELECT privilège sur toutes les tables.

Quelqu'un pourrait-il faire la lumière sur le bon format à utiliser, illustré en donnant un accès en lecture seule utilisateur sur toutes les tables?

Répondre

1

Dans la source postgresl_user il y a une fonction parse_privs. Cela semble être la meilleure source pour le format attendu de priv:

Format: 
     privileges[/privileges/...] 
Where: 
     privileges := DATABASE_PRIVILEGES[,DATABASE_PRIVILEGES,...] | 
      TABLE_NAME:TABLE_PRIVILEGES[,TABLE_PRIVILEGES,...] 

Il ressemble à / est le séparateur pour les privilèges et : est le séparateur pour un nom de table et le privilège (s) pour cette table . , sépare les privilèges d'une table.