PostgreSQL Membership
Resumo
- Adiciona ou remove perfis PostgreSQL em grupos.
- Os usuários são perfis com privilégio de login.
- Grupos são perfis do PostgreSQL geralmente sem privilégio LOGIN.
Parâmetros
Parâmetro | Tipo | Escolhas | Valores padrão | Comentários |
|---|---|---|---|
db | string | | Nome do banco de dados ao qual se conectar.. aliases: login_db |
fail_on_role | boolean | Escolhas:
| Caso use 'yes', falha quando o grupo ou target_role não existir. Caso use 'no', apenas avise e continue. |
groups | list | | A lista de grupos (funções) que precisam ser concedidos ou revogados de target_roles. aliases: group, source_role, source_roles |
session_role | string | | Alterna para session_role após conectar. O session_role especificado deve ser uma função da qual o login_user atual é membro. A verificação de permissões para comandos SQL é realizada como se o session_role fosse aquele que havia se logado originalmente. |
state | string | Escolhas
| state=present implica que os grupos devem ser concedidos a target_roles. state=absent implica que os grupos devem ser revogados de target_roles. |
target_roles | list | | A lista de funções de destino (os grupos serão concedidos a eles). aliases: target_role, users, user |
trust_input | boolean | Escolhas:
| Caso use 'no', verifica se os valores dos parâmetros groups, target_roles, session_role são potencialmente perigosos. Faz sentido usar não apenas quando as injeções de SQL por meio dos parâmetros são possíveis. |
Extende fragmentos da documentação do módulo PostgreSQL Base
Notas
- A autenticação padrão assume que você está fazendo login ou sudo na conta do postgres no host.
- Para evitar o erro “Peer authentication failed for user postgres”, use o usuário postgres como um become_user.
- Se o host remoto for o servidor PostgreSQL (que é o caso padrão), o PostgreSQL também deve ser instalado no host remoto.
- O parâmetro ca_cert requer pelo menos Postgres versão 8.4.
Exemplos
- name: Concede o perfil read_only a alice e bob
postgresql_membership:
group: read_only
target_roles:
- alice
- bob
state: present
# você também pode usar target_roles: alice, bob, etc para passar a lista de funções
- name: revoga o perfil read_only e exec_func de bob. Ignorar se as funções não existirem
postgresql_membership:
groups:
- read_only
- exec_func
target_role: bob
fail_on_role: no
state: absent
Valores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
granted | dictionary | se state=present | Dicionário de grupos e pefis concedidos. Exemplo: {'ro_group': ['alice', 'bob']} |
queries | string | sempre | Lista de consultas executadas. Exemplo: ['GRANT "user_ro" TO "alice"'] |
revoked | dictionary | se state=absent | Dicionário de grupos e perfis revogadas. Exemplo: {'ro_group': ['alice', 'bob']} |
state | string | sempre | Estado de associação que tentou ser definido. Exemplo: present |