mysql的权限管理

Mysql的权限管理其实就是对操作的管理(增删改查这些)主要分为四个方面:

  1. 对数据库系统的权限管理
  2. 对单个数据库的权限管理
  3. 对数据表的权限管理
  4. 对属性列的权限管理

首先新建一个用户

create user '用户名'@'允许登录数据库的ip地址' identified by '密码';
// 登录语句:
mysql -u用户名 -p密码 -h服务端ip

相应的权限管理分别对应以下mysql数据库中的表

  1. user表:对数据库系统的权限,也就是对数据库系统的所有数据库的所有表的权限管理。如果一个用户有相应的权限,比如Select_priv权限,那么他可以对所有数据库中的表进行select操作
    现在我刚刚新建了 ls 用户,尝试用这个用户查询 root 用户建立的 jw数据库的s

可以看到Select_priv权限是 N
在这里插入图片描述
直接就找不到jw数据库

Select_priv权限改为 Y然后测试

grant select on *.*  to 'ls'@'localhost';

如果是所有权限则grant all on *.* to 'ls'@'localhost';
更新 flush privileges;
在这里插入图片描述

可以查到内容
mysql的权限管理_第1张图片
尝试更改内容,则没有权限
在这里插入图片描述

  1. db表:对单个数据库的权限,设置为Y则该用户对这一个数据库的所有表都有相应的权限
grant select on jw.* from to 'ls'@'localhost'; 
  1. tables_priv表:对单个表的权限管理,语句为:
grant select on jw.s to 'ls'@'localhost';
  1. columns_priv表:对单个表的部分属性进行权限管理
grant select(id), update(id) on jw.s to 'ls'@'localhost';

同时也有相应的收回权限语句

revoke select on *.* from 'ls'@'localhost';

revoke select on jw.* from 'ls'@'localhost';

revoke select on jw.s from 'ls'@'localhost'; 

你可能感兴趣的:(mysql的权限管理)