引言
本文将就MySQL的用户操作相关进行解析和实例操作,内容包括用户的增、删、改,用户权限的增、删等。
注:以下操作中均在Windows10—MySQL8.0版本下运行,如版本不同可能会有命令报错等问题
以下所有的代码操作均经过了笔者的亲自测试检验
输入格式
create user 'user01' @'localhost' identified by 'user01';
输出
mysql> create user 'user01'@'localhost' identified by'user01';
Query OK, 0 rows affected (0.01 sec)
注:用户的添加修改删除等操作都是在root权限下操作的!
输入格式
drop user ‘user01’@’localhost’;
注:此步操作后要重新创建一个名为user01的用户,否则后面的操作无法进行!
输入格式
select user,host from mysql.user;
输出
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| user01 | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
输入格式
select current_user();
或select user();
这里的user()是个函数,相当于调用了此函数去查询当前用户的信息
输出
mysql> select current_user;
+----------------+
| current_user |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
注:此时是在root用户下查看的,因此显示的是root用户信息。接下来我们要进行登录操作,登录刚刚创建的新用户。登录此用户前,电脑必须已经配置好MySQL的环境变量,不知道如何配置的小伙伴可以到百度上查阅或者查看我前面写过的文章《MySQL环境变量的配置》。
输入格式
mysql -u user01 -p
注:对用户进行修改等操作也都是在root权限下的,因此我们还要重新回到root权限下的控制台。
这里我们将用户名user01修改为User01。
输入格式
rename user 'user01'@'localhost' to 'User01'@'localhost';
然后我们查看用户名,检查是否修改成功。
输入格式
select user from mysql.user;
输出
mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| User01 |
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| root |
+------------------+
5 rows in set (0.00 sec)
通过结果我们看到用户名已经修改成功了。
这里我们把原密码user01修改为User01。
输入格式
alter user 'User01'@'localhost' identified by 'User01';
可以通过重新打开cmd控制台登录,检查密码修改是否成功。
这里我们查看刚刚用户的权限。
注:查看权限也需要在root权限下!
输入格式
show grants for ‘User01’@’localhost’;
输出
mysql> show grants for 'User01'@'localhost';
+--------------------------------------------+
| Grants for User01@localhost |
+--------------------------------------------+
| GRANT USAGE ON *.* TO `User01`@`localhost` |
+--------------------------------------------+
1 row in set (0.00 sec)
添加权限是指,将root用户的数据库读取等权限赋予你所指定的用户。
1.我们先查看一下root用户的数据库有哪些内容;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| bank |
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
| testjoin |
+--------------------+
7 rows in set (0.02 sec)
2.可以看到有一个test数据库,我们进入到test里面查看test有哪些列表;
注:这里的test是事先已经创建好了的,你可以自己创建一个任意的库用来进行测试。
+----------------+
| Tables_in_test |
+----------------+
| course |
| grade |
| score |
| student |
| teacher |
+----------------+
3.可以看到有一个score,现在我们拿score做例子,演示一下将test下的score权限给User01。
grant all on test.score to 'User01'@'localhost';
//这里的all是指将test.score的所有权限都给User01
4.权限赋予给User01后,我们需要进入User01账户,通过控制台输入用户名和密码进入。进入后我们查看数据库;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
5.可以看到,这里已经显示有test数据库的信息了,我们再进入test里面;通过输出可以看到,我们已经能够访问到score列表了;
mysql> use test
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| score |
+----------------+
1 row in set (0.00 sec)
6.如果想继续查看的话,可以通过查找命令查看score内的所有内容,这里就不继续演示了。
输入格式
revoke all on test.score from 'User01'@'localhost';
在User01用户下刷新权限,然后查看数据库可以检查权限是否撤销成功。撤销权限的格式还有其他的形式,但大概也都与此类似,有兴趣的可以查阅相关资料了解。
小tip
刷新系统权限表,即时生效
flush privileges;
好了,到这里所有相关内容都已经介绍完毕啦!如果有疑问、不懂的地方或者其他问题都可以在评论区留言评论;感谢您的阅读~