教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql客户端连接服务器时怎么验证匹配授权表

mysql客户端连接服务器时怎么验证匹配授权表

发布时间:2016-05-11   编辑:jiaochengji.com
本文介绍了mysql客户端连接服务器时,验证与匹配授权表的一些原则,了解清楚mysql授权表原则,对于分析mysql客户端登录的一些问题会比较方便。

从客户端来连接服务器时,发现服务器端mysql库中的授权表有多条记录匹配我的这个连接,那么服务器会选择哪条记录来验证本次连接呢?

解决方法:
首先,mysql启动的时候会读入mysql,然后进行排序;
然后,按排序后的条目来匹配验证客户端的连接,mysql服务器会选择与客户端连接匹配的第一行记录来验证。

那么mysql会按照什么规则来排序呢?

首先,以user表中的host值来排序,最具体的主机名或ip地址排在最前面;
其次,如果host值相同,会再按照user值来排序,也是跟host值排序一样,最具体的user值排在最前面。

来看下面的例子:
 
例如:user表中的host和user值如下:
 

复制代码 代码示例:
+-------------+----------+-
| Host        | User     |
+-------------+----------+-
| %           | devl     |
| 192.168.1.1 | dev1     |
| 192.168.1.1 |          |
| 192.168.%   | dev1     |
+-------------+----------+-
 

那么按照上面所说的规则,user表被载入内存后排序,得到下面的样子:
 

复制代码 代码示例:
+-------------+----------+-
| Host        | User     |
+-------------+----------+-
| 192.168.1.1 | devl     |
| 192.168.1.1 |          |
| 192.168.%   | dev1     |
| %           | dev1     |
+-------------+----------+-
 

如果能够连接服务器,但权限不是期望的,可能被鉴定为其它账户。
要想找出服务器用来鉴定你的账户,可以使用CURRENT_USER()函数。它返回user_name@host_name格式的值
例如:

复制代码 代码示例:
select CURRENT_USER();

您可能感兴趣的文章:
mysql客户端连接服务器时怎么验证匹配授权表
mysql数据库的授权原则详解
mysql数据库用户与权限管理学习笔记
phpmyadmin设置密码(phpmyadmin密码修改)
Mysql数据库中用户授权原则分析
安装连接mysql的工具Navicat 出现1044/1045错误的解决方法
API接口之安全篇
MySql创建用户并授权的实例分析
电脑突然无法连网怎么办?电脑突然无法上网解决办法
mysql删除用户授权的方法

关键词: mysql客户端  mysql授权表   
[关闭]
~ ~