关于mysql数据的权限

Ps:p.%中的ip是指的什么 ip ,可客户端的 ip 还是服务端的 ip ?此时的%指的是什么?

ip 指的是客服端的ip;

%

比如说 192.168.1.%:表示 192.168.1.% 可以访问,192.168.1.10%,192.168.1.20%,192.168.1.30%等,我都可以访问。

如果说只有一个 % ,那么表示我所有的 ip 都是可以访问的。

1.创建一个用户并给此用户一个查询权限

#在127.0.0.1连接的demo数据库中创建一个chenyuchen的用户,并给了他一个查询的权限,密码为123456
grant select  on demo.* 
to 'chiyuchen'@'127.0.0.1.%'  identified by '123456' 
with grant option;

对应mysql数据的 db 表和 user 表

 2.在连接数据库显示此用户的所有权限

#在127.0.0.1连接的demo数据库中查询chiyuchen用户的所有权限信息
show grants for 'chiyuchen'@'127.0.0.1.%';

右键复制连接测试:

测试表中数据

测试查看权限ok

 

测试删除权限err:

测试更新权限err:

 

3.删除某个用户的查询权限

#删除某个用户的查询权限
revoke select on demo.* 
from 'chiyuchen'@'127.0.0.1.%';

4.只给用户某个表中的某几个列的查看权限

#只允许用户查看brand中的id和brand_name字段
grant select (id,brand_name) on demo.brand 
to 'chiyuchen'@'127.0.0.1.%';

对应mysql数据的 db 表、user 表、tables_priv 表和 columns_priv 表

 

5.创建一个用户

#创建一个无密码的用户
create user 'jinhuiliu';

6.把A用户的权限给B用户

#赋权:把chiyuchen用户的权限给jinhuiliu(Ps:5.7版本后才有的)
grate proxy on 'chiyuchen' to 'jinhuiliu';

对应 mysql 数据库中的 proxies_priv 表:

原文地址:https://www.cnblogs.com/mjtabu/p/12879491.html