MySql 用户管理

MySQL 中关于用户和权限的表如下,一般使用 INSERT 命令插入数据。

表名 包含主要列 说明
MYSQL.USER HOST, USER, PASSWORD, ... 存储从主机 HOST 上登陆的 USER 用户的权限
MYSQL.HOST HOST, DB, ... 存储从主机 HOST 上登陆的任意用户的权限
MYSQL.DB HOST, DB, USER, ... 存储从主机 HOST 上登陆的 USER 用户在数据库 DB 上的权限
说明
PASSWORD 必须等于 password('实际口令')
HOST, USER, DB 为空或者 '%' 是表示任意
下划线 主键

授权的匹配搜索机制

假设在主机 H 上登陆的用户 U 需要访问数据库 D,则匹配过程如下:

1、在 USER 中搜索 HOST=H、USER=U。

2、在 USER 中搜索 HOST=H、USER 任意。

2、在 USER 中搜索 HOST=任意、USER=U。

3、在 DB 中搜索 HOST=H、USER=U、DB=D。

4、在 DB 中搜索 HOST=H、USER 任意、DB=D。

4、在 DB 中搜索 HOST=任意、USER=U、DB=D。

5、在 HOST 中搜索 HOST=H、DB=D。

6、在 HOST 中搜索 HOST 任意、DB=D。

注:

(1)user表:根据先host后user的顺序确定。搜索规则如下:不包含统配符的记录,包含统配符的记录,空记录。而在同样一个host里面,继续按照user来排列,规则和上述的一样。
(2)db表:检索的顺序根据host字段确定:不包含统配符的记录,包含统配符的记录,空记录。
(3)host表:检索的顺序根据host字段确定:不包含统配符的记录,包含统配符的记录,空记录。我们用下面的例子来说明进行匹配搜索的规则:请记住如果你更改了这些数据表,你必须使用mysqladmin reload使其生效。