前言:本章节讲解的是mysql中的用户管理,包括(管理数据用户)、(控制数据库的访问权限)。
目录
1. 查询用户
2. 创建用户
3. 修改用户密码
4. 删除用户
5. 权限控制
1. 查询用户
在mysql数据库中, 用户信息都是存储在一个名为“mysql”数据库中的“user”表中的。我们通过切换数据库, 查询user表来查询用户,如下:
user mysql;
select * from user;
Host:主机(决定了用户可以在哪台电脑连接数据库,localhost代表本机)
User:用户名(登录数据库时用到的用户名)
2. 创建用户
create user '用户名'@'主机IP' identified by '密码';
-- 创建一个只能在本机上访问数据库的用户
create user 'user_name'@'localhost' identified by '123456';
-- 创建一个可以在任意电脑上访问数据库的用户(将主机IP该为%即可)
create user 'user_name'@'%' identified by '123456';
创建用户时, 默认是没有权限的,需要赋予权限,后面会讲解。创建的用户登录时可能会提示:Public Key Retrieval is not allowed, 解决办法请看该文章:https://mp.csdn.net/mp_blog/creation/editor/133103310
3. 修改用户密码
alter user '用户名'@'主机IP' identified with mysql_native_password by '新密码';
-- MySQL 8.0 版本及以上
SET PASSWORD FOR '用户名'@'主机IP' = '新密码';
4. 删除用户
drop user '用户名'@'主机IP';
5. 权限控制
mysql中定义很多种权限,但是常用只有以下几种
权限关键字 | 权限说明 |
ALL,ALL PRIVILEGES | 赋予用户所有权限,包括数据库和表级别的权限 |
SELECT | 查询表数据权限 |
INSERT | 插入表数据权限 |
UPDATE | 修改表数据权限 |
DELETE | 删除表数据权限 |
CREATE | 创建数据库、表权限 |
DROP | 删除数据库、表、视图权限 |
GRANT OPTION | 允许用户将自己拥有的权限授予其他用户 |
ALTER | 允许用户修改已有的数据库或表结构 |
SHOW DATABASES | 允许用户查看所有数据库的列表 |
SHOW VIEW | 允许用户查看视图的定义 |
5.1 查询权限
SHOW GRANTS FOR '用户名'@'主机名';
示例:
show grants for 'user_name'@'localhost';
5.2 授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
示例:给user_name用户,赋予test数据库下的students表所有权限
GRANT ALL ON test.students TO 'user_name'@'%';
示例:给user_name用户,赋予(所有数据库)(所有表)的(查询权限),所有用*代替
GRANT ALL ON *.* TO 'user_name'@'%';
5.3 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
举例:这个依葫芦画瓢,很简单的啦,去除user_name用户的test库students表的所有权限。
REVOKE ALL ON test.students FROM 'user_name'@'%';