在MySQL中将权限管理分为三类
1.数据权限:增删改查 (select\update\delete\insert)
2.结构权限:结构操作(create\drop\alter)
3.管理权限:权限管理(create user\grant\revoke),通常只给管理员如此权限。
将权限分配给指定的用户
基本语法:grant 权限列表 on 数据库/*.表名/* to 用户;
权限列表:使用逗号分隔,但是可以使用 all privileges 代表全部权限。
数据库.表名:可以是单表(数据库名字.表名),可以是具体某个数据库(数据库,*),也可以是整库(*.*);
数据库名字.表名:指的是对应数据库中对应数据表。
*.表名:指的是将所有数据库中的数据表。
*.*:指的是所有数据库中的所有表。
可以理解为:将对school数据库中的my_int数据表的查询权限赋予lixiaochi用户。
具体权限查看:单表权限只能看到数据库中的一张表。
*.表名:指的是将所有数据库中的数据表。
权限回收:将权限从用户手中收回
基本语法:revoke 权限列表(all privileges)on 数据库/*.表名/* from 用户;
revoke all privileges on school.* from lixiaochi@‘%‘;
Flush:刷新,将当前对用户的权限操作,进行一个刷新,将操作的具体内容同步到对应的表中。
基本语法:flush privileges;
如果忘记了root用户的密码,就需要去找回或者是重置root用户。
1.停止服务; net stop mysql
2.重新启动服务: mysqld.exe --skip-grant-tables;
3.当前启动的服务器没有权限概念,非常危险,任何客户端,不需要任何用户信息都可以直接登录,
而且是root权限,新开客户端,使用mysql.exe登录即可。
4.修改root用户的密码。指定 用户名@host : alter user ‘用户名‘@‘host‘ identified by ‘123456‘;
5.赶紧关闭服务器,重启服务。
原文:https://www.cnblogs.com/lixiaochi/p/10587191.html