mysql学习之MySql 的用户和权限管理

我爱海鲸 2022-02-18 18:15:03 暂无标签

简介用户和权限管理

1、 Mysql 的用户管理

1.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' 进行删除,系
统会有残留信息保留。

1.2 示例说明

  

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. Mysql 的权限管理

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 用户 ,对所有库所有表的全部权
限,密码设为 12

2.2 收回权限

命令 描述 备注
show grant 查看当前用户权限  
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;    

你好:我的2025