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使其生效。