mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-04-08 19:50:31 -07:00
fix users with multiple schemas with ALL PRIVILEGES only showing first
This commit is contained in:
parent
40f47f6828
commit
0bcfdb72ab
2 changed files with 18 additions and 12 deletions
|
@ -552,17 +552,15 @@ def privileges_get(module, cursor, user, host, maria_role=False):
|
||||||
if "WITH GRANT OPTION" in res.group(7):
|
if "WITH GRANT OPTION" in res.group(7):
|
||||||
privileges.append('GRANT')
|
privileges.append('GRANT')
|
||||||
|
|
||||||
# Prevent to output 'ALL', 'ALL' because mysql 8 display all privileges
|
|
||||||
# with two lines as you can see in variable mysql8_all_privileges.
|
|
||||||
if (
|
|
||||||
'ALL' in privileges
|
|
||||||
and (['ALL'] in output.values() or ['ALL', 'GRANT'] in output.values())
|
|
||||||
):
|
|
||||||
continue
|
|
||||||
|
|
||||||
output.setdefault(db, []).extend(privileges)
|
output.setdefault(db, []).extend(privileges)
|
||||||
|
|
||||||
return output
|
# Prevent to output 'ALL', 'ALL' because mysql 8 display all privileges
|
||||||
|
# with two lines as you can see in variable mysql8_all_privileges.
|
||||||
|
output_deduplicates = {}
|
||||||
|
for k, v in output.items():
|
||||||
|
output_deduplicates[k] = list(set(v))
|
||||||
|
|
||||||
|
return output_deduplicates
|
||||||
|
|
||||||
|
|
||||||
def normalize_col_grants(privileges):
|
def normalize_col_grants(privileges):
|
||||||
|
|
|
@ -15,7 +15,10 @@
|
||||||
# ================================ Prepare ==============================
|
# ================================ Prepare ==============================
|
||||||
- name: Mysql_info users_privs | Create databases
|
- name: Mysql_info users_privs | Create databases
|
||||||
community.mysql.mysql_db:
|
community.mysql.mysql_db:
|
||||||
name: users_privs_db
|
name:
|
||||||
|
- users_privs_db
|
||||||
|
- users_privs_db2
|
||||||
|
- users_privs_db3
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Mysql_info users_privs | Create tables
|
- name: Mysql_info users_privs | Create tables
|
||||||
|
@ -74,7 +77,9 @@
|
||||||
- name: users_privs_multi
|
- name: users_privs_multi
|
||||||
priv:
|
priv:
|
||||||
'mysql.*': 'SELECT'
|
'mysql.*': 'SELECT'
|
||||||
'users_privs_db.*': 'SELECT'
|
'users_privs_db.*': 'ALL'
|
||||||
|
'users_privs_db2.*': 'ALL'
|
||||||
|
'users_privs_db3.*': 'ALL'
|
||||||
- name: users_privs_usage_only
|
- name: users_privs_usage_only
|
||||||
priv:
|
priv:
|
||||||
'*.*': 'USAGE'
|
'*.*': 'USAGE'
|
||||||
|
@ -194,7 +199,10 @@
|
||||||
|
|
||||||
- name: Mysql_info users_privs | Cleanup databases
|
- name: Mysql_info users_privs | Cleanup databases
|
||||||
community.mysql.mysql_db:
|
community.mysql.mysql_db:
|
||||||
name: users_privs_db
|
name:
|
||||||
|
- users_privs_db
|
||||||
|
- users_privs_db2
|
||||||
|
- users_privs_db3
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Mysql_info users_privs | Cleanup sql file for the procedure
|
- name: Mysql_info users_privs | Cleanup sql file for the procedure
|
||||||
|
|
Loading…
Add table
Reference in a new issue