我使用了以下ansible任务来为所有数据库授予GRANT 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将此USAGE更改为GRANT ALL?
答案 0 :(得分:4)
默认情况下,mysql_user
会创建localhost
个主机部分的用户
因此,您的任务使用dbuser@localhost
创建了GRANT ALL
如果您需要其他主机,请为模块设置host=XX.XX.XX.XX
参数
在修改权限时,自2.1起可用host_all=yes
。
答案 1 :(得分:0)
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
```