如果需要查看MySQL用户权限,应该如何实现呢?下面就为您介绍查看MySQL用户权限的方法,并对授予MySQL用户权限的语句进行介绍,供您参考。

查看MySQL用户权限:

show grants for 你的用户

比如:
show grants for root@'localhost';

Grant 用法

GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';
GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost';

我先按我的理解解释一下上面两句的意思
建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的
然后第二句的意思是 ,给这个discuz用户操作discuz数据库的所有权限

使用GRANT

GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:

mysql> GRANT <privileges> ON <what>
-> TO <user> [IDENTIFIED BY "<password>"]
-> [WITH GRANT OPTION];


正如你看到的,在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。

<privileges>是一个用逗号分隔的你想要赋予的MySQL用户权限的列表。你可以指定的权限可以分为三种类型:

数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。

全局管理MySQL用户权限:

file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。

特别的权限:

ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。

今天在和一家厂商做电子签章搭建的时候出现问题,tomcat发布完成后出现问题报错:

Caused by: java.sql.SQLException: Access denied for user 'root'@'10.10.10.1' (using password: YES)

因为最开始我认为我已经对系统进行过"%"这种开放权限的操作了,后来又做了一次针对需要插入数据的库的权限开放的操作,经过测试还是连不上库。最后在对方的提示下,发现没有对所有用户进行发放的授权,导致无法与数据库建立连接插入数据如果在搭建环境的时候需要其他的主机在mysql上进行操作的时候,要有该主机IP的权限或者是“%”的权限。最终show grants for root;的结果为

+--------------------------------------------------------------------------------------------------------------+

| Grants for root@%                                                                                            |

+--------------------------------------------------------------------------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*DDFB542AA0BD1D251995D81AEBEB96DEEAD1132F' |

|                                                           |

+--------------------------------------------------------------------------------------------------------------+

其实也不一定非要用root,用其他名字的用户也是可以的。标红部分的配置是必须的。还有就是命令要写对,写完之后要flush privileges;

show grants for root;查看一下,是否已经成功写入