mysql 版本: 5.7.19
grant SHOW DATABASES on *.* to xm@localhost identified by '123';
上面的 SQL 语句是授予本地 xm 用户对所有数据库都可用show databases
命令是吧, 可是退出重新登录后无法执行任何操作, 于是上网搜了一番...
grant SUPER on *.* to xm@localhost;
执行上面语句, 为 xm 用户添加了 SUPER 权限后才可以执行show databases
命令, 也可以用use xxx
命令.
我就纳闷了, 难道如果想授予那些增删改查权限, 都要添加 SUPER 权限?, 官网好像说 SUPER 权限以后的版本会废除....
什么都干不了的体现是: mysql -u xm -p123
连接上去后, 输入show databases;
或者use xxx
这些命令的返回全都是:
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 54
Current database: *** NONE ***
ERROR 1184 (08S01): Aborted connection 54 to db: 'unconnected' user: 'xm' host: 'localhost' (init_connect command failed)
1
changefun OP 网上说 Mysql 权限机制第二阶段是先检查你所发出的请求, 然后查询 mysql.user 表(全局)是否有对应的权限(例如 Select_priv 是否为 Y), 没有则继续往下查询 mysql.db 表, 一直查询完 grant tables 的几个表,如果都没有就拒绝. 可是操作起来让我感觉到好像是如果 mysql.user 表没有对应的权限, 就直接拒绝了, 不再往下查询 db 这些表了......
|