mysql 不授予用户 SUPER 权限就什么都干不了?

2018-10-23 20:33:02 +08:00
 changefun

mysql 版本: 5.7.19

常规步骤:

  1. grant SHOW DATABASES on *.* to xm@localhost identified by '123';
    上面的 SQL 语句是授予本地 xm 用户对所有数据库都可用show databases命令是吧, 可是退出重新登录后无法执行任何操作, 于是上网搜了一番...

  2. 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)
6872 次点击
所在节点    MySQL
1 条回复
changefun
2018-10-24 08:24:50 +08:00
网上说 Mysql 权限机制第二阶段是先检查你所发出的请求, 然后查询 mysql.user 表(全局)是否有对应的权限(例如 Select_priv 是否为 Y), 没有则继续往下查询 mysql.db 表, 一直查询完 grant tables 的几个表,如果都没有就拒绝. 可是操作起来让我感觉到好像是如果 mysql.user 表没有对应的权限, 就直接拒绝了, 不再往下查询 db 这些表了......

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/500373

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX