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; |