权限分类:

USAGE                                             无权限,只有登录数据库,只可以使用test或test_*数据库
ALL                                               所有权限
select/update/delete/super/slave/reload           指定的权限
with grant option                                 允许把自己的权限授予其它用户或者从其他用户收回自己的权限

作用范围

*.*                                     全库、全表(mysql.user)
mysql.*                                  mysql库下所有表(某库中的所有表)(mysql.db)
mysql.user                               mysql库中user表(单表)(mysql.table_priv)
mysql.user.host                          mysql库中user表的host列(mysql.columns_priv)
View Code

主机登录权限

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用户能在所有的机器上登录数据库服务器
View Code

用户授权

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;
View Code

对已有权限的处理

  回收权限

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;      查看用户权限
 

权限的保存位置

mysql.user              所有mysql用户的账号和密码,以及对用户对全库全表权限(*.*)
mysql.db                非mysql库的授权都保存在此(db.*)
mysql.table_priv        某库某表的授权(db.table)
mysql.columns_priv      某库某表某列的授权(db.table.col1)
mysql.procs_priv        某库存储过程的授权
View Code

 




posted on 2020-03-14 14:32  topass123  阅读(159)  评论(0编辑  收藏  举报