【赵渝强老师】管理MySQL的用户_mysql

  在MySQL数据库中,用户信息、用户的密码、删除用户及分配权限等就是存储在MySQL数据库的"mysql.user"表中。下面展示了该表的部分字段信息:

【赵渝强老师】管理MySQL的用户_mysql_02

  数据库安装配置成功后,MySQL就创建了几个默认的用户。下表列举了这些用户以及他们的作用。

【赵渝强老师】管理MySQL的用户_mysql_03

  视频讲解如下:

管理MySQL的用户

【赵渝强老师】管理MySQL的用户


一、创建MySQL的用户

  在MySQL中,我们可以使用"create user"语句创建一个新的MySQL用户。下面通过一个具体的示例来演示如何在MySQL中创建用户。

(1)使用root用户登录MySQL

(2)创建一个新的用户user002。

mysql> create user user002 identified by 'Welcome_1';
  • 1.

  提示:这里的密码使用了明文的形式进行创建。为了更加安全地保护用户的密码,在创建用户时,可以使用密文的形式。在MySQL 8中使用sha1()函数可以生成密码的对应密文。例如:

select sha1('Welcome_1');
  • 1.

  输出的信息如下:

+------------------------------------------+
| sha1('Welcome_1')                        |
+------------------------------------------+
| d809d427528be8821658f2013dedf69dbe0f23de |
+------------------------------------------+
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

(3)查询"mysql.user"表中的信息。

mysql> use mysql;

mysql> select host,user from user where user='user002';
  • 1.
  • 2.
  • 3.

  输出的信息如下:

+------+---------+
| host | user    |
+------+---------+
| %    | user002 |
+------+---------+
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

  提示:此时用户user002不具备任何的权限。

(4)使用user002登录MySQL数据库,并查看当前实例上的数据库信息。

mysql -uuser002 -pWelcome_1

mysql> show databases;
  • 1.
  • 2.
  • 3.

  输出的信息如下:

+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

  提示:从上面的输出可以看出,用户user002只能访问information_schema。

二、重命名MySQL用户

  在MySQL中,我们可以使用"rename user"语句修改一个或多个已经存在的MySQL用户。下面通过一个具体的步骤来演示如何使用该语句 。

(1)查看"rename user"的使用帮助信息。

mysql> help rename user;
  • 1.

  输出的信息如下:

Name: 'RENAME USER'
Description:
Syntax:
RENAME USER old_user TO new_user[, old_user TO new_user] ...
  • 1.
  • 2.
  • 3.
  • 4.

  其中:

  • old_user:MySQL中已存在的用户。
  • new_user:新的MySQL用户。

(2)将user002用户重命名为user003。

mysql> rename user user002 to user003;
  • 1.

  提示:若MySQL数据库中的旧用户不存在或者新用户已存在,该语句执行时会出现错误。使用"rename user"语句,必须拥有MySQL数据库的 update权限或全局"create user"权限。

三、删除MySQL用户

  当一个用户不再被使用时,可以使用"drop user"语句将该用户进行删除。例如:

mysql> drop user user003;
  • 1.

  提示:这里也可以直接从"mysql.user"表中进行删除。

mysql> use mysql;
mysql> delete from user where user='user003';
  • 1.
  • 2.