【发布时间】:2020-12-07 21:08:31
【问题描述】:
我需要授予特定数据库的所有权限以及 mysql 用户的 PROCESS 权限。
我尝试了很多组合,但都不起作用:
mysql_user: priv="{{ item.name | regex_replace ('[.-]', '_') }}.*:ALL/PROCESS" login_host="{{mysql.endpoint.address}}" login_port=3306 login_user="{{mysql_root_user}}" login_password="{{mysql_root_password}}" name="{{item.user}}" password="{{item.password}}" host=% state=present
结果:“无效的权限字符串:列表索引超出范围”
mysql_user: priv="{{ item.name | regex_replace ('[.-]','_') }}.*:ALL/{{ item.name | regex_replace ('[.-]','_') }}.*:PROCESS" login_host="{{mysql.endpoint.address}}" login_port=3306 login_user="{{mysql_root_user}}" login_password="{{mysql_root_password}}" name="{{item.user}}" password="{{item.password}}" host=% state=present
结果:DB GRANT 和 GLOBAL PRIVILEGES 使用不正确
mysql_user: priv="{{ item.name | regex_replace ('[.-'_') }}.*:ALL,PROCESS" login_host="{{mysql.endpoint.address}}" login_port=3306 login_user="{{mysql_root_user}}" login_password="{{mysql_root_password}}" name="{{item.user}}" password="{{item.password}}" host=% state=present
(来自https://stackoverflow.com/a/50785241/123594 - 我感到绝望)
结果:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“PROCESS ON ...”附近使用的正确语法。
如何向具有 Ansible mysql_user 的用户授予 PROCESS 权限?
【问题讨论】:
-
@NRE 我对“ALL,GRANT”感到困惑? GRANT 和 PROCESS 一样吗?我希望能够从此用户访问 information_schema 表。