更改mysql密码
--查询用户权限
showgrantsfor'root'@'%';
updatemysql.usersetauthentication_string=password('密码')whereuser='root'andHost='localhost';
flushprivileges;
--或者下面方式
alteruser'test1'@'localhost'identifiedby'新密码';
flushprivileges;
创建用户
--创建本地的
--createuser'test1'@'localhost'identifiedby'密码';
--创建可以远程访问的
createuser'wjl'@'%'identifiedby'wujialiang';
给用户所有权限
--grantallprivilegeson*.*to'wjl'@'localhost'withgrantoption;
grantallprivilegeson*.*to'wjl'@'%'withgrantoption;
第一个表示通配数据库,可指定新建用户只可操作的数据库
如:grantallprivilegeson数据库.to‘test1’@‘localhost’;
第二个*表示通配表,可指定新建用户只可操作的数据库下的某个表
如:grantallprivilegeson数据库.指定表名to‘test1’@‘localhost’;
allprivileges可换成select,update,insert,delete,drop,create等操作如:grantselect,insert,update,deleteon.to‘test1’@‘localhost’;
移除用户所有权限
--revokeallprivilegeson*.*from'wjl'@'localhost';
revokeallprivilegeson*.*from'wjl'@'%';
知识星球
添加部分权限
--GRANTSelect,Update,insert,deleteON*.*TO'用户名'@"%";
GRANTselect,update,insert,deleteON*.*TO'wjl'@"%";
移除部分权限
--REVOKEselect,insertON数据库.*FROMwjl@'localhost'
REVOKEselect,insertON数据库.*FROMwjl@'%'
删除用户
dropuser'wjl'@'localhost';
权限解释
参数解释
All/AllPrivileges代表全局或者全数据库对象级别的所有权限
Alter代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果是rename表名,则要求有alter和drop原表,create和insert新表的权限
Alterroutine代表允许修改或者删除存储过程、函数的权限
Create代表允许创建新的数据库和表的权限
Createroutine代表允许创建存储过程、函数的权限
Createtablespace代表允许创建、修改、删除表空间和日志组的权限
Createtemporarytables代表允许创建临时表的权限
Createuser代表允许创建、修改、删除、重命名user的权限
Createview代表允许创建视图的权限
Delete代表允许删除行数据的权限
Drop代表允许删除数据库、表、视图的权限,包括truncatetable命令
Event代表允许查询,创建,修改,删除MySQL事件
Execute代表允许执行存储过程和函数的权限
File代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括loaddatainfile,select…intooutfile,loadfile()函数
Grantoption权限代表是否允许此用户授权或者收回给其他用户你给予的权限,重新付给管理员的时候需要加上这个权限
Index代表是否允许创建和删除索引
Insert代表是否允许在表里插入数据,同时在执行analyzetable,optimizetable,repairtable语句的时候也需要insert权限
Lock代表允许对拥有select权限的表进行锁定,以防止其他链接对此表的读或写
Process代表允许查看MySQL中的进程信息,比如执行showprocesslist,mysqladminprocesslist,showengine等命令
Reference是在5.7.6版本之后引入,代表是否允许创建外键
Reload代表允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有的表
Replicationclient代表允许执行showmasterstatus,showslavestatus,showbinarylogs命令
Replicationslave代表允许slave主机通过此用户连接master以便建立主从复制关系
Select代表允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如Select1+1,SelectPI()+2;而且select权限在执行update/delete语句中含有where条件的情况下也是需要的
Showdatabases代表通过执行showdatabases命令查看所有的数据库名
Showview代表通过执行showcreateview命令查看视图创建的语句
Shutdown代表允许关闭数据库实例,执行语句包括mysqladminshutdown
Super代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令,changemasterto创建复制关系命令,以及create/alter/dropserver等命令
Trigger代表允许创建,删除,执行,显示触发器的权限
Update代表允许修改表中的数据的权限
Usage是创建一个用户之后的默认权限,其本身代表连接登录权限
案例
普通用户权限
grantallprivilegeson*.*to'wjl'@'%'withgrantoption;
REVOKEShutdown,Process,Grantoption,DropON*.*FROMwjl@'%';
flushprivileges;
|