Ansible 不会将特权从 USAGE 更改为 GRANT ALL

Ansible doesn't change privilage from USAGE to GRANT ALL

我使用以下 ansible 任务将所有权限授予所有数据库。

- 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

但是当我 运行 show grants for 'dbuser'@'XX.XX.XX.XX'; 在 mysql(mariadb) 上时它显示我正在关注。

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

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

默认情况下 mysql_user 创建具有 localhost 主机部分的用户。
所以你的任务创建了 dbuser@localhostGRANT ALL
如果需要其他主机,请为模块设置host=XX.XX.XX.XX参数。
还有 host_all=yes 自 2.1 起修改权限时可用。

mysql_user:
    name: root
    host: "{{item}}"
    password: "{{ mysql_root_password }}"
    priv: "*.*:ALL,GRANT"
    host_all: yes
  with_items:
    - "{{ ansible_hostname }}"
    - 127.0.0.1
    - ::1
    - localhost
```