权限管理

MySQL 的权限系统用于控制用户对数据库的访问和操作权限。


简介

在连接到 MySQL 数据库时,您需要提供以下凭据:

  1. 身份信息
    • 用户名(username
    • 主机名或 IP 地址(由服务器自动检测)
  2. 密码
    • 用于验证身份的凭证。

通常,MySQL 应用程序还要求您提供数据库名称,但这不是身份凭据的一部分,因为它与您是谁无关。

MySQL 将特定的权限与这些身份凭据关联,例如:

  • 查询指定数据库的权限。
  • 向某个数据库添加数据的权限。
  • 创建新数据库或删除现有数据库的权限。

我是谁?

连接到 MySQL 后,您可以使用 CURRENT_USER() 函数查看当前用户信息。例如:

mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

查看权限:SHOW GRANTS

语法

  • SHOW GRANTS FOR 'user'@'host';
    查看指定用户的权限。

  • SHOW GRANTS;
    查看当前用户的权限。


示例

查看 root 用户的权限:

mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)

这表示 root 用户在所有数据库上的所有权限(ALL PRIVILEGES),并可以使用 GRANT OPTION 授予其他用户权限。


查看当前用户的权限:

mysql> SHOW GRANTS;

输出显示当前登录用户的所有权限。


总结

  • MySQL 使用用户名和主机名/IP 地址来唯一标识用户。
  • 使用 CURRENT_USER() 确定当前会话的用户身份。
  • 使用 SHOW GRANTS 检查指定用户或当前用户的权限。

通过这些工具,您可以高效管理 MySQL 的权限系统。

最后修改: 2025年01月17日 星期五 19:33