在MySQL数据库中,用户信息、用户的密码、删除用户及分配权限等就是存储在MySQL数据库的“mysql.user”表中。下面展示了该表的部分字段信息:
数据库安装配置成功后,MySQL就创建了几个默认的用户。下表列举了这些用户以及他们的作用。
视频讲解如下:
一、创建MySQL的用户
在MySQL中,我们可以使用“create user”语句创建一个新的MySQL用户。下面通过一个具体的示例来演示如何在MySQL中创建用户。
(1)使用root用户登录MySQL
(2)创建一个新的用户user002。
mysql> create user user002 identified by 'Welcome_1';
提示:这里的密码使用了明文的形式进行创建。为了更加安全地保护用户的密码,在创建用户时,可以使用密文的形式。在MySQL 8中使用sha1()函数可以生成密码的对应密文。例如:
select sha1('Welcome_1');
输出的信息如下:
+------------------------------------------+ | sha1('Welcome_1') | +------------------------------------------+ | d809d427528be8821658f2013dedf69dbe0f23de | +------------------------------------------+
(3)查询“mysql.user”表中的信息。
mysql> use mysql; mysql> select host,user from user where user='user002';
输出的信息如下:
+------+---------+ | host | user | +------+---------+ | % | user002 | +------+---------+
提示:此时用户user002不具备任何的权限。
(4)使用user002登录MySQL数据库,并查看当前实例上的数据库信息。
mysql -uuser002 -pWelcome_1 mysql> show databases;
输出的信息如下:
+--------------------+ | Database | +--------------------+ | information_schema | +--------------------+
提示:从上面的输出可以看出,用户user002只能访问information_schema。
二、重命名MySQL的用户
在MySQL中,我们可以使用“rename user”语句修改一个或多个已经存在的MySQL用户。下面通过一个具体的步骤来演示如何使用该语句 。
(1)查看“rename user”的使用帮助信息。
mysql> help rename user;
输出的信息如下:
Name: 'RENAME USER' Description: Syntax: RENAME USER old_user TO new_user[, old_user TO new_user] ...
其中:
- old_user:MySQL中已存在的用户。
- new_user:新的MySQL用户。
(2)将user002用户重命名为user003。
mysql> rename user user002 to user003;
提示:若MySQL数据库中的旧用户不存在或者新用户已存在,该语句执行时会出现错误。使用“rename user”语句,必须拥有MySQL数据库的 update权限或全局“create user”权限。
三、删除MySQL的用户
当一个用户不再被使用时,可以使用“drop user”语句将该用户进行删除。例如:
mysql> drop user user003;
提示:这里也可以直接从“mysql.user”表中进行删除。
mysql> use mysql; mysql> delete from user where user='user003';