【mysql】用户和权限管理

1.用户管理

相关命令如下

命令 描述 备注
create user zhang3 identified by ‘123123‘;

创建名称为zhang3 的用户,
密码设为123123;

 

select host,user,password,select_priv,insert_priv,drop_priv
from mysql.user;

查看用户和权限的相关信

 
set password =password(‘123456‘) 修改当前用户的密码  

update mysql.user set password=password(‘123456‘) where
user=‘li4‘;

修改其他用户的密码

所有通过user 表的修改,必须
用flush privileges; 命令才能生

update mysql.user set user=‘li4‘ where user=‘wang5‘; 修改用户名

所有通过user 表的修改,必须
用flush privileges; 命令才能生

drop user li4 删除用户

不要通过delete from user u
where user=‘li4‘ 进行删除,系
统会有残留信息保留。

 

 

说明如下:

  

host :

  表示连接类型
  % 表示所有远程通过TCP 方式的连接
  IP 地址如(192.168.1.2,127.0.0.1) 通过制定ip 地址进行的TCP 方式的连接
  机器名通过制定i 网络中的机器名进行的TCP 方式的连接
  ::1 IPv6 的本地ip 地址等同于IPv4 的127.0.0.1
  localhost 本地方式通过命令行方式的连接,比如mysql -u xxx -p 123xxx 方式的连接。
user:  

  表示用户名
  同一用户通过不同方式链接的权限是不一样的。
password:

  密码
  所有密码串通过password(明文字符串) 生成的密文字符串。加密算法为MYSQLSHA1 ,不可逆。
  mysql 5.7 的密码保存到authentication_string 字段中不再使用password 字段。
select_priv , insert_priv
  为该用户所拥有的权限。

 

 2.权限管理

2.1 授予权限

命令 描述

grant 权限1,权限2,…权限n on 数据库名称.
表名称to 用户名@用户地址identified by
‘连接口令’

该权限如果发现没有该用户,则会直接新建一个用户。
示例:
grant select,insert,delete,drop on atguigudb.* to li4@localhost ;
给li4 用户用本地命令行方式下,授予atguigudb 这个库下的所有
表的插删改查的权限。

grant all privileges on *.* to joe@‘%‘ identified
by ‘123‘;

授予通过网络方式登录的的joe 用户,对所有库所有表的全部权
限,密码设为123.

2.2 收回权限

命令 描述
show grants 查看当前用户权限

revoke [权限1,权限2,…权限n] on
库名.表名from 用户名@用户地址;

收回权限命令
REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost; 收回全库全表的所有权限
REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;

收回mysql 库下的所有表的插删改查
权限

  权限收回后,必须用户重新登录后,才能生效。

2.3 查看权限

命令 描述 备注
show grants; 查看当前用户权限  
select * from user ;    

 

备注:

   总结自尚硅谷-mysql高级

【mysql】用户和权限管理

上一篇:go 实现websocket推送


下一篇:Oracle 数据库日常巡检