mysql权限管理

权限管理

image

#授权表
user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段
db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段
tables_priv #该表放行的权限。针对:某一张表,以及该表下的所有字段
columns_priv #该表放行的权限,针对:某一个字段

#按图解释:
user:放行db1,db2及其包含的所有
db:放行db1,及其db1包含的所有
tables_priv:放行db1.table1,及其该表包含的所有
columns_prive:放行db1.table1.column1,只放行该字段

代码示例

创建用户
create user 'egon' identified by '123';


#授权:对文件夹,对文件,对文件某一字段的权限
查看帮助:help grant

all可以代表除了grant之外的所有权限

grant all privileges on *.* to 'egon@%' identified by '123';

all privileges表示所有权限,常用权限有:select,update,alter,delete,drop。

*.* 表示授权给所有库
db.table 表示授权给db中的table
db.* 表示授权给db中的所有表

localhost:允许该用户在本地登录,不能远程登录。
192.168.1.8: 具体的IP表示只允许该用户从特定IP登录
%:允许在除本机之外的任何一台机器远程登录。

# 查看权限
show grants for 'egon';

#刷新
flush privileges;

#删除用户
drop user 'egon'@'%';

#针对所有库的授权:*.*
grant select on *.* to 'egon1'@'localhost' identified by '123'; #只在user表中可以查到egon1用户的select权限被设置为Y

#针对某一数据库:db1.*
grant select on db1.* to 'egon2'@'%' identified by '123'; #只在db表中可以查到egon2用户的select权限被设置为Y

#针对某一个表:db1.t1
grant select on db1.t1 to 'egon3'@'%' identified by '123';  #只在tables_priv表中可以查到egon3用户的select权限

#针对某一个字段:


grant select (id,name),update (age) on db1.t3 to 'egon4'@'localhost' identified by '123'; 

#删除权限
revoke select on db1.* from 'egon'@'%';
posted @ 2018-04-05 22:08  Jason_lincoln  阅读(101)  评论(0编辑  收藏  举报