mysql 的用户管理
1.1.1、相关命令
创建名称为xiaolin 的用户,密码为123456
create user xiaolin identified by ‘123456’
查看用户和权限的相关信息
select * from mysql.user
host表示连接类型。
- %:表示所有远程通过TCP方式连接。
- 127.0.0.1:通过指定IP进行的TCP方式的连接。
- 机器名:通过指定网络中的机器名进行的TCP方式的连接。
- ::1:IPV6的本地IP地址,等同于IPV4的127.0.0.1
- localhost 本地方式通过命令行方式的连接 ,比如 mysql -u xxx -p 123xxx 方式的连接。
select_priv , insert_priv等
表示该用户所拥有的权限。
修改用户名, 必须通过flush privlilegs 才能生效
update mysql.user set user=’zs’ where user=’xiaolin’
删除用户
drop user xiaolin
1.2.1、授予权限
我们可以通过命令来授予用户权限,该权限如果发现没有该用户,则会直接新建一个用户。
格式为:
grant 权限 1,权限 2,…权限 n on 数据库名称.表名称 to 用户名@用户地址 identified by‘连接口令 复制代码
示范:
# 给 xiaolin 用户用本地命令行方式下,授予 user 这个库下的所有表的插删改查的权限。
grant select,insert,delete,drop on user.* to xiaolin@localhost;
# 授予通过网络方式登录的的 xiaolin 用户 ,对所有库所有表的全部权限,密码设为 123.
grant all privileges on *.* to xiaolin@'%' identified by '123';
1.2.2、查看权限
我们可以使用命令来查看当前用户的权限。
show grants;
1.2.3、收回权限
我们可以使用命令来收回用户的权限,权限收回后,必须用户重新登录后,才能生效。
revoke [权限 1,权限 2,…权限 n] on 库名.表名 from 用户名@用户地址 ; 复制代码
示范:
# 收回全库全表的所有权限
REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;
# 收回 mysql 库下的所有表的插删改查权限 REVOKE select,insert,update,delete ON mysql.* FROM xiaolin@localhost;