Mysql的用户管理与权限管理

专栏目录请点击

用户管理

创建用户

CREATE USER zhangsan IDENTIFIED BY '123456';

执行结果如下
在这里插入图片描述

查看用户

SELECT * FROM mysql.user;

在这里插入图片描述

字段解释

host

表示连接的类型
在这里插入图片描述

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

User

表示用户名

同一用户通过不同方式链接的权限是不一样的。

select_priv , insert_priv等

为该用户所拥有的权限。

修改密码

修改当前用户密码

SET PASSWORD =PASSWORD('123456')

修改某个用户的密码

扫描二维码关注公众号,回复: 15288117 查看本文章
UPDATE mysql.user SET PASSWORD=PASSWORD('123123') WHERE USER='zhangsan';
FLUSH PRIVILEGES;   #所有通过user表的修改,必须用该命令才能生效。

修改用户

UPDATE mysql.user SET USER='zhangsan' WHERE USER='zhangsi';
FLUSH PRIVILEGES;   #所有通过user表的修改,必须用该命令才能生效。

删除用户

DROP USER zhangsan ;

通过

DELETE FROM  USER WHERE USER='zhangsan' 

用户数据会有残留

权限管理

查看权限

查看当前用户权限

SHOW GRANTS;

在这里插入图片描述

查看某用户的全局权限

select  * from user ;

查看某用户的某库的权限

select * from  db;

查看某用户的某个表的权限

select * from tables_priv;

授予权限

GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 IDENTIFIED BY ‘连接口令’;
  • 该权限如果发现没有该用户,则会直接新建一个用户

例一

GRANT SELECT,INSERT,DELETE,DROP ON hello.* TO zhangsan@localhost  ;
  • 授予hello这个库下的所有表的插删改查的权限

例二

GRANT ALL PRIVILEGES ON *.* TO joe@'%'  IDENTIFIED BY '123';
  • 授予通过网络方式登录的的joe用户 ,对所有库所有表的全部权限,密码设为123
  • 就算 all privileges 了所有权限,grant_priv 权限也只有 root 才能拥有

例三

给root用户赋链接命令

GRANT ALL PRIVILEGES ON *.* TO root@'%';
  • 后新建的连接没有密码,需要设置密码才能远程连接。
UPDATE USER SET PASSWORD=PASSWORD('root') WHERE USER='root' AND HOST='%';

收回权限

必须用户重新登录后才能生效

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库下的所有表的插删改查权限

猜你喜欢

转载自blog.csdn.net/youhebuke225/article/details/130052360