管理 MySQL 用户权限

MySQLBeginner
立即练习

介绍

在本项目中,你将学习如何在 MySQL 数据库中管理用户权限。具体来说,你将创建一个名为“Rong”的新本地用户,并授予其对performance_schema数据库的访问权限。

👀 预览

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

🎯 任务

在本项目中,你将学习:

  • 如何启动 MySQL 服务器并登录到 MySQL 终端
  • 如何使用特定密码创建新的本地用户
  • 如何授予用户对特定数据库及其表的访问权限

🏆 成果

完成本项目后,你将能够:

  • 在 MySQL 数据库中管理用户账户和权限
  • 理解授予和撤销用户数据库访问权限的过程
  • 将这些技能应用于在你自己的基于 MySQL 的应用程序中设置用户权限

启动 MySQL 并登录

在这一步中,你将学习如何启动 MySQL 服务器并登录到 MySQL 终端。

  1. 在你的系统上打开一个终端。

  2. 运行以下命令来启动 MySQL 服务:

    sudo /etc/init.d/mysql start
  3. 登录到 MySQL 终端:

    mysql -uroot

    你现在应该已进入 MySQL 终端,在这里你可以输入 MySQL 命令。

✨ 查看解决方案并练习

创建一个本地用户

在这一步中,你将学习如何创建一个名为“Rong”且密码为“123456”的新本地用户。

  1. 在“~/project”目录中创建“manUser.sql”文件。

  2. 将以下代码添加到该文件中以创建用户:

    CREATE USER 'Rong'@'localhost' IDENTIFIED BY '123456';

    这将创建一个名为“Rong”且密码为“123456”的新用户,并允许该用户从本地机器(localhost)登录。

✨ 查看解决方案并练习

授予对 Performance_schema 的访问权限

在这一步中,你将学习如何授予“Rong”用户对performance_schema数据库的访问权限。

  1. 打开“manUser.sql”文件。

  2. 在上一步添加的代码之后授予必要的权限:

    GRANT SELECT ON performance_schema.* TO 'Rong'@'localhost';

    这授予“Rong”用户对performance_schema数据库中所有表的 SELECT 权限。

  3. 最后,刷新权限并使更改生效:

    FLUSH PRIVILEGES;
✨ 查看解决方案并练习

验证解决方案

  1. 在 MySQL 提示符下运行 SQL 脚本:
SOURCE /home/labex/project/manUser.sql;
  1. 在 MySQL 终端中运行以下命令来验证结果:
SHOW GRANTS FOR Rong@localhost;

这应该显示“Rong”用户的权限,包括对performance_schema数据库的 SELECT 权限。

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)
✨ 查看解决方案并练习

总结

恭喜!你已完成此项目。你可以在 LabEx 中练习更多实验以提升你的技能。