2016-10-27 2 views
6

Это должно быть очень просто. Я хочу сделать заявление Ansible, чтобы создать пользователя Postgres, который имеет права доступа к определенной базе данных и выбрать/вставить/обновить/удалить привилегии для всех таблиц в этой конкретной базе данных. Я попытался следующий:Ansible создает пользователя postgresql с доступом ко всем таблицам?

- name: Create postgres user for my app 
    become: yes 
    become_user: postgres 
    postgresql_user: 
     db: "mydatabase" 
     name: "myappuser" 
     password: "supersecretpassword" 
     priv: CONNECT/ALL:SELECT,INSERT,UPDATE,DELETE 

Я получаю relation \"ALL\" does not exist

Если удалить ALL:, я получаю Invalid privs specified for database: INSERT UPDATE SELECT DELETE

ответ

2

Мне нужно было сначала создать пользователя, а затем предоставить привилегии отдельно. Он работает как шарм.

- name: Create postgres user for my app 
    become: yes 
    become_user: postgres 
    postgresql_user: 
     name: "myappuser" 
     password: "supersecretpassword" 

    - name: Ensure we have access from the new user 
    become: yes 
    become_user: postgres 
    postgresql_privs: 
     db: mydatabase 
     role: myappuser 
     objs: ALL_IN_SCHEMA 
     privs: SELECT,INSERT,UPDATE,DELETE 
0

От анзибль документации postgressql module, собства должны быть «PostgreSQL привилегий строки в формате: Таблица: Priv1 , priv2 " Таким образом, ваша задача должна быть

- name: Create postgres user for my app 
    become: yes 
    become_user: postgres 
    postgresql_user: 
     db: "mydatabase" 
     name: "myappuser" 
     password: "supersecretpassword" 
     priv: ALL:SELECT,INSERT,UPDATE,DELETE,CONNECT 
+0

Это не сработало для меня. Я получил ошибку 'psycopg2.ProgrammingError: отношение \" ALL \ "не существует' – Inti

Смежные вопросы