我使用了下面的任务来授予所有数据库以ALL ALL特权。

- name: create new user {{ db_user }} with all privilege
  mysql_user: name="{{ db_user }}"
              password="{{ db_password }}"
              append_privs=yes
              priv=*.*:ALL,GRANT state=present


但是当我在mysql show grants for 'dbuser'@'XX.XX.XX.XX';上运行(mariadb)时,显示以下内容。

GRANT USAGE ON *.* TO 'dbuser'@'XX.XX.XX.XX' IDENTIFIED BY PASSWORD '*A7AD1ECBCD787B8CABE6A58AEA652A8B3CF5035BA82'


如何使用ansible将此用法更改为GRANT ALL?

最佳答案

默认情况下,mysql_user创建具有localhost主机部分的用户。
因此,您的任务使用dbuser@localhost创建了GRANT ALL
如果需要其他主机,请为模块设置host=XX.XX.XX.XX参数。
从2.1开始,修改权限时还提供host_all=yes

关于mysql - Ansible不会将特权从USAGE更改为GRANT ALL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39029283/

10-16 10:11