Czy istnieje sposób udzielania uprawnień do administrowania MySQL przy użyciu modułu Ansys mysql_user (lub przy użyciu dowolnego innego modułu)? Chcę ustawić dla użytkownika uprawnienia SUPER
, RELOAD
i SHOW DATABASES
wraz z niektórymi innymi prawami specyficznymi dla bazy danych.Jak nadać uprawnienia administratora serwera MySQL (SUPER, RELOAD ...) z ansible?
Po podstawowy konfiguracja działa dobrze dla mnie:
- name: Set user privileges
mysql_user:
user={{ mysql_user }}
password={{ mysql_password }}
state=present
priv={{ item }}
with_items:
- 'somedatabase.*:ALL'
- 'someotherdatabase.*:ALL'
... skutkuje:
TASK: [db | Set user privileges]
**********************************************
ok: [dbuser] => (item=somedatabase.*:ALL)
ok: [dbuser] => (item=someotherdatabase.*:ALL)
Po instalacji powtarza "zmienił" i przywileje nie są tym, co można się spodziewać:
- name: Set user privileges
mysql_user:
user={{ mysql_user }}
password={{ mysql_password }}
state=present
priv={{ item }}
with_items:
- '*.*:SUPER,RELOAD,SHOW\ DATABASES'
- 'somedatabase.*:ALL'
- 'someotherdatabase.*:ALL'
(powtarzane) run:
TASK: [db | Set user privileges]
**********************************************
changed: [dbuser] => (item=*.*:SUPER,RELOAD,SHOW\ DATABASES)
changed: [dbuser] => (item=somedatabase.*:ALL)
ok: [dbuser] => (item=someotherdatabase.*:ALL)
skutkuje:
mysql> show grants for 'dbuser'@'localhost';
+---------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'dbuser'@'localhost' IDENTIFIED BY PASSWORD '*2046D2DDAE359F311435E8B4D3776EFE13FB584C' |
| GRANT ALL PRIVILEGES ON `somedatabase`.* TO 'dbuser'@'localhost' |
| GRANT ALL PRIVILEGES ON `someotherdatabase`.* TO 'dbuser'@'localhost' |
+---------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
Czy ktoś wie, w jaki sposób:
- ustawić
SUPER
,RELOAD
iSHOW DATABASE
administratora. przywileje? - dokonać konfiguracji idempotent?
Dzięki za wspomnieć 'append_privs' – oblalex