|
25 | 25 | - vars: |
26 | 26 | db_password: 'secretù' # use UTF-8 |
27 | 27 | block: |
28 | | - - name: Create a user with some permissions on the db |
| 28 | + - name: Create a user |
29 | 29 | become_user: "{{ pg_user }}" |
30 | 30 | become: true |
31 | 31 | postgresql_user: |
32 | 32 | name: "{{ db_user1 }}" |
33 | 33 | encrypted: 'true' |
34 | 34 | password: "md5{{ (db_password ~ db_user1) | hash('md5')}}" |
35 | 35 | db: "{{ db_name }}" |
36 | | - priv: 'test_table1:INSERT,SELECT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER/test_table2:INSERT/CREATE,CONNECT,TEMP' |
37 | 36 | login_user: "{{ pg_user }}" |
38 | 37 |
|
| 38 | + - name: Grant privs on test_table1 |
| 39 | + become_user: "{{ pg_user }}" |
| 40 | + become: true |
| 41 | + postgresql_privs: |
| 42 | + db: "{{ db_name }}" |
| 43 | + login_user: "{{ pg_user }}" |
| 44 | + roles: "{{ db_user1 }}" |
| 45 | + privs: 'INSERT,SELECT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER' |
| 46 | + type: table |
| 47 | + objs: test_table1 |
| 48 | + |
| 49 | + - name: Grant privs on test_table2 |
| 50 | + become_user: "{{ pg_user }}" |
| 51 | + become: true |
| 52 | + postgresql_privs: |
| 53 | + db: "{{ db_name }}" |
| 54 | + login_user: "{{ pg_user }}" |
| 55 | + roles: "{{ db_user1 }}" |
| 56 | + privs: 'INSERT' |
| 57 | + type: table |
| 58 | + objs: test_table2 |
| 59 | + |
39 | 60 | - include_tasks: pg_authid_not_readable.yml |
40 | 61 |
|
41 | 62 | - name: Check that the user has the requested permissions (table1) |
|
68 | 89 | - result_table2.rowcount == 1 |
69 | 90 | - result_table2.query_result[0]['privilege_type'] == 'INSERT' |
70 | 91 | - result_database.rowcount == 1 |
71 | | - - "'{{ db_user1 }}=CTc/{{ pg_user }}' in result_database.query_result[0]['datacl']" |
| 92 | + - result_database.query_result[0]['datacl'] == None |
72 | 93 |
|
73 | 94 | - name: Add another permission for the user |
74 | 95 | become_user: "{{ pg_user }}" |
75 | 96 | become: true |
76 | | - postgresql_user: |
77 | | - name: "{{ db_user1 }}" |
78 | | - encrypted: 'true' |
79 | | - password: "md55c8ccfd9d6711fc69a7eae647fc54f51" |
| 97 | + postgresql_privs: |
| 98 | + roles: "{{ db_user1 }}" |
80 | 99 | db: "{{ db_name }}" |
81 | | - priv: 'test_table2:select' |
| 100 | + privs: 'SELECT' |
| 101 | + type: table |
| 102 | + objs: test_table2 |
82 | 103 | login_user: "{{ pg_user }}" |
| 104 | + |
83 | 105 | register: result |
84 | 106 |
|
85 | 107 | - name: Check that ansible reports it changed the user |
|
199 | 221 | - assert: |
200 | 222 | that: |
201 | 223 | - result_database.rowcount == 1 |
202 | | - - "'{{ db_user1 }}' not in result_database.query_result[0]['datacl']" |
| 224 | + - result_database.query_result[0]['datacl'] is not search("{{ db_user1 }}") |
203 | 225 |
|
204 | 226 | - name: Grant database privileges |
205 | 227 | become_user: "{{ pg_user }}" |
|
0 commit comments