权限分类:
USAGE 无权限,只有登录数据库,只可以使用test或test_*数据库 ALL 所有权限 select/update/delete/super/slave/reload 指定的权限 with grant option 允许把自己的权限授予其它用户或者从其他用户收回自己的权限
作用范围
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
*.* 全库、全表(mysql.user) mysql.* mysql库下所有表(某库中的所有表)(mysql.db) mysql.user mysql库中user表(单表)(mysql.table_priv) mysql.user.host mysql库中user表的host列(mysql.columns_priv)
主机登录权限
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
user@localhost 表示user只能在本地通过socket登录服务器 user@192.168.0.1 表示user用户只能在192.168.0.1登录数据库服务器 user@192.168.0.0/255.555.255.0 指定某个子网的主机可以登录数据库 user@% 表示user用户能在所有的机器上登录数据库服务器
用户授权
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
grant 权限 on 库.表 to 用户@主机 grant 权限(列1,列2,...) on 库.表 to 用户@主机 mysql> grant select on db01.* to 'boy'@'10.1.1.0/255.255.255.0'; mysql> flush privileges;
对已有权限的处理
回收权限
mysql> revoke update,select on mysql.user from stu6@localhost; --撤消指定的权限 mysql> revoke all privileges,grant option from stu4@'%'; --撤消所有的权限
mysql> drop user user01@'localhost'; 删除用户 mysql> select user from mysql.user where user='user01'; 验证用户是否删除成功
mysql> drop user user; 默认删除该用户从任意主机登陆
mysql> rename user u01@'instructor.example.com' to u001@'localhost'; 重命名用户名 mysql> show grants; 查看用户权限
权限的保存位置
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mysql.user 所有mysql用户的账号和密码,以及对用户对全库全表权限(*.*) mysql.db 非mysql库的授权都保存在此(db.*) mysql.table_priv 某库某表的授权(db.table) mysql.columns_priv 某库某表某列的授权(db.table.col1) mysql.procs_priv 某库存储过程的授权
本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/articles/12492054.html