MySQL数据隔离grant使用

1.用户授权

mysql> grant all privileges on *.* to 'user'@'%' identified by 'user123456' with grant option;
  • 关键字   描述                        
  • 1、all privileges  表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
  • 2、on  表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的data表中,可以这么写:test.data。
  • 3、to  将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”user”@”192.168.0.%”,表示user这个用户只能在192.168.0IP段登录。
  • 4、identified by  定用户的登录密码。
  • 5、with grant option  表示允许用户将自己的权限授权给其它用户,不过不建议使用,最好是管理员统一分配权限。

1.1权限分配具体使用

```sql
grant select on *.* to user@localhost; -- user可以查询 MySQL 中所有数据库中的表。
grant all on *.* to dba@localhost; -- user可以管理 MySQL 中的所有数据库
grant select on testdb.* to dba@localhost; -- user可以查询 testdb 中的表。
grant select, insert, update, delete on test.data to user@localhost; -- 给与user用户test数据库data表的CURD权限
--这里在给一个用户授权多张表时,可以多次执行以上语句。例如下面两句:
grant select(user_id,username) on test.data to user@'%' identified by '123345';
grant select on test.dataInfo to user@'%' identified by '123345';
--grant 作用在表中的列上
grant select(datasetId, datasetScore) on test.dataInfo to user@localhost;
```

1.2 权限可以叠加

​    可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。

2.刷新权限

mysql> flush privileges;

​    对用户做了权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库。

3.查看权限

mysql> show grants for 'user'@'localhost';

​    查看本地user用户权限

4.收回权限

mysql> revoke create on *.* from 'user@localhost';
mysql> flush privileges;

​    删除user这个用户的create权限,该用户将不能创建数据库和表。revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

5.MySQL权限设置

5.1权限表

```tex
mysql数据库中的3个权限表:user 、db、 host
权限表的存取过程是:
1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;
2)通过权限验证,进行权限分配时,按照useràdbàtables_privàcolumns_priv的顺序进行分配。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。
```

具体每一个权限的作用请看 https://www.cnblogs.com/Csir/p/7889953.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值