mysql权限管理

权限介绍

 mysql中的数据是非常重要的,在生产环境中不同项目的开发、运维都会接触到mysql,数据的安全就会尤为重要。如何能保证数据的安全呢,正确合理权限是我们最重要的保障。总体思路就是针对用户的使用及权限做定制化设置,保证不给用户分配超出权利之外的权限,防止作恶。

常用权限

权限指定符 权限允许的操作 
  Alter       修改表和索引 
  Create      创建数据库和表 
  Delete      删除表中已有的记录 
  Drop        抛弃(删除)数据库和表 
  INDEX       创建或抛弃索引 
  Insert      向表中插入新行 
  REFERENCE    未用 
  Select     检索表中的记录 
  Update      修改现存表记录 
  FILE       读或写服务器上的文件 
  PROCESS      查看服务器中执行的线程信息或杀死线程 
  RELOAD     重载授权表或清空日志、主机缓存或表缓存。 
  SHUTDOWN     关闭服务器 
  ALL       所有;ALL PRIVILEGES同义词 
  USAGE     特殊的"无权限"权限

 

设置权限思考三个问题

  • 登录方式:本地登陆,远程登陆
  • 从哪里登录:登录IP地址范围
  • 能干什么:登陆后能干什么

查看用户权限

查看某个用户的权限
show grants for 'sky'@'%';

USAGE 权限最小
%代表所有机器IP

 

权限发放 grant命令

 mysql> grant select on db1.* to "sky"@"%"; 

权限回收 revoke命令

 mysql> revoke select on db1.* from "sky"@"%" 

 

mysql忘记密码怎么办

方法一
[root@convirt ~]# vim /etc/my.cnf
skip-grant-tables;   #本地和远程登陆不管用户是谁都可以跳过密码
重启mysql
直接不用密码登陆
mysql> flush privileges ;
mysql> update mysql.user set password=password('') where user="root" and host="localhost";   password is null

方法二 mysqld_safe
--skip-grant-tables 即可跳过密码验证文件登陆(本地和远程都可以) --skip-networking 网络不可以登陆只能本地
改口令 update mysql.user set password
=password('456') where user="root" and host="localhost";
----
password(
'456') root@localhost的密码改为456 password 是将密码456加密 root密码为456

 

mysql 5.7 和mysql 8 以后改密码有了变化,没有password 函数

posted @ 2020-06-04 10:52  元贞  阅读(166)  评论(0)    收藏  举报