目 录
一、mysql的权限系统简述
1、用户验证
第一阶段(身份认证): 用户输入 mysql -u [用户名] -p [密码]
登录之后,服务器会在user表中查询用户名、密码和主机信息是否有对应的数据,如果有对应的数据则身份验证通过,允许用户登录,否则返回1045错误提示给用户。
第二阶段(权限分配): 用户连接登录后,服务器会检查全局权限表user
中的数据,如果数据全为Y,则直接放权。如果数据中存在N则进入db
表中检查该用户可访问的数据库,如果数据中含有Y则直接放权限,如果有数据N的话再检查tables_priv
表对应的具体表…
2、MySQL 访问权限系统表
mysql的权限由四个表来控制权限,分别是user表,db表,tables_priv表,columns_priv表
- user (存放用户账号、密码、主机信息和全局权限
- db (数据库级别的权限表)
- tables_priv (表级别的权限表)
- columns_priv (列级权限表)
- procs_priv (函数/存储过程权限表)
二、查看用户
1、查看所有用户信息(包括授权信息)
SELECT [*/指定字段] FROM mysql.user;
查询脚本 | 查询结果 |
---|---|
select * from mysql.user host:代表授权用户(%可远程可本地登录,localhost只能本地登录) user:代表用户名 select_priv:代表查询权限 insert_priv:代表插入权限 update_priv:代表更新权限 |
2、查看用户权限信息
SHOW GRANTS FOR [用户名]@[主机名];
查询脚本 | 查询结果 |
---|---|
show grants for root@'localhost'; |
3、用户重命名
RENAME USER [旧用户名]@[旧主机名