2016-10-27 26 views
6

To powinno być bardzo proste. Chcę utworzyć instrukcję Ansable, aby utworzyć użytkownika PostgreSQL, który ma uprawnienia do połączenia z konkretną bazą danych i wybierz/wstaw/zaktualizuj/usuń uprawnienia do wszystkich tabel w tej konkretnej bazie danych. Próbowałem następujące:Czy można utworzyć użytkownika postgresql z dostępem do wszystkich tabel?

- 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 

uzyskać relation \"ALL\" does not exist

Jeśli usunąć ALL:, mam Invalid privs specified for database: INSERT UPDATE SELECT DELETE

Odpowiedz

2

Co musiałem zrobić, to najpierw utworzyć użytkownika, a następnie nadać uprawnienia osobno. Działa jak urok.

- 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

Od ansibl dokumentacji postgressql module, priv powinno być „PostgreSQL przywileje ciąg w formacie: tabela: Priv1 , priv2" Więc zadanie powinno być

- 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

To nie działa dla mnie. Wystąpił błąd 'psycopg2.ProgrammingError: relation \" ALL \ "nie istnieje – Inti

Powiązane problemy