mysql的用户权限总结

18 篇文章 0 订阅
14 篇文章 0 订阅

一、权限级别 :

       1、全部权限:可以控制对所有数据库的访问权限,权限信息主要保存在系统表mysql.user中;

       2、数据库级别权限:可以控制对指定数据库的访问权限,权限信息主要保存在系统表mysql.db中;

       3、数据库对象级别权限:可以控制对指定数据库对象,比如表、存储过程或列的访问权限,权限信息主要保存在系统表mysql.xxx_priv中;

       权限的优先级是:user > db > xxx_priv,也就是说如果user表中有权限就以user表的权限为准,如果user表没有权限再看db表的权限,如果db表有权限就以db表的权限为准,如果db表没有权限才看具体的xxx_priv表的权限。

二、权限分类:

权限说明
All、All Privileges全部数据库的所有权限
Usage是创建一个用户之后的默认权限,包括连接、登录权限。该权限不能被回收,即使使用REVOKE
Select允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如Select 1+1, Select PI()+2;而且select权限在执行update/delete语句中含有where条件的情况下也是需要的
Insert允许在表里插入数据,同时在执行analyze table,optimize table,repair table,create user语句的时候也需要Insert权限
Update允许修改表中的数据的权限
Delete允许删除行数据的权限
Create允许创建数据库和表的权限
Drop允许删除数据库、表、视图的权限,包括truncate table命令
Reload允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有的表
Shutdown允许关闭数据库实例,执行语句包括mysqladmin shutdown
Process允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令。默认每个用户都可以执行show processlist命令,但是只能查询本用户的进程
File允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile、select … into outfile、load file()函数
Grant允许此用户授权或者收回给其他用户授予的权限,重新赋给管理员的时候需要加上这个权限
Reference允许创建外键
Index允许创建和删除索引
Alter允许修改表结构的权限,但必须要有Create和Insert权限配合。如果是rename表名,则要求有Alter和Drop原表,Create和Insert新表的权限
Show databases允许通过执行show databases命令查看所有的数据库名
Super允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令,change master to创建复制关系命令,以及create/alter/drop server等命令
Create temporary tables允许创建临时表的权限
Lock tables允许对拥有Select权限的表进行锁定或解锁,以防止其他链接对此表的读或写
Execute允许执行存储过程和函数的权限
Replication slave允许slave主机通过此用户连接master以便建立主从复制关系
Replication client允许执行show master status,show slave status,show binary logs命令
Create view允许创建视图的权限
Show view允许通过执行show create view命令查看视图创建的语句
Create routine允许创建存储过程、函数的权限,当授予此权限时会自动授予Execute和Alter routine权限
Alter routine允许修改或者删除存储过程、函数的权限
Create user允许创建、修改、删除、重命名user的权限
Event允许查询、创建、修改、删除MySQL事件
Trigger允许创建、删除、执行、显示触发器的权限
Create tablespace允许创建、修改、删除表空间和日志组的权限

       Host字段用来限制允许从哪些IP请求连接数据库,localhost表示只能服务器本地连接。可以使用通配符%或_,%表示任意数量的字符,_表示单个字符。User字段用来指定哪些用户可以连接数据库,''表示任意用户。

三、常用命令:

       1、查看指定用户的授权信息:

show grants for root@localhost;

       2、查看指定用户的非授权信息:

show create user root@localhost;

       3、创建授权用户:

create user 'user'@'localhost' identified by 'user@123' account lock;

       4、删除授权用户: 

drop user 'user'@'localhost';

       5、修改指定授权用户密码有4种方式:

alter user 'user'@'localhost' identified by 'user@123';

set password for 'user'@'localhost' = PASSWORD('user@123');

grant all privileges on dbname.tablename to 'user'@'localhost' identified by 'user123';

mysqladmin -u user -h host_name password "user@123"

       6、修改当前登录用户的密码:

alter user USER() identified by 'user@123';

set PASSWORD = PASSWORD('user@123');

       7、设置授权用户密码过期策略:

alter user 'user'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY; //90天过期

alter user 'user'@'localhost' PASSWORD EXPIRE NEVER; //密码不过期

alter user 'user'@'localhost' PASSWORD EXPIRE DEFAULT; //默认过期策略

alter user 'user'@'localhost' PASSWORD EXPIRE; //强制用户密码过期

       8、创建授权用户并给该用户指定数据库中的指定的表进行授权: 

grant all privileges on dbname.tablename to 'user'@'localhost' identified by 'user123';

       9、 给指定用户授权指定列的权限,该权限可以向下继续授予:

grant select(id) on dbname.tablename to 'user'@'localhost' with grant option;

       10、 允许指定用户对指定数据库的表的权限可以向下继续授予:

grant grant option on dbname.tablename to 'user'@'localhost'; 

       11、 收回指定用户的指定权限:

revoke select on dbname.tablename from 'user'@'localhost'; 

 

 

参考:https://blog.csdn.net/wulantian/article/details/38230635

           https://www.cnblogs.com/keme/p/10288168.html

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值