通过命令行在 Linux 上删除 MySQL 用户的权限

上一个系列:
MySQL 通过命令行 101:基本数据库交互

预检

  • 这些说明旨在通过命令行撤销 Linux 上的 MySQL 用户权限
  • 我将在 Liquid Web Core Managed CentOS 6.5 服务器上工作,我将以 root 身份登录。

登录到 MySQL

首先,我们将使用以下命令从命令行登录 MySQL 服务器:

mysql -u root -p

在这种情况下,我使用 -u 标志指定了用户 root,然后使用 -p 标志让 MySQL 提示输入密码。 Enter 您当前的密码以完成登录。

如果您需要更改数据库中的 root(或任何其他)密码,请按照本教程通过命令行更改 MySQL 密码。

您现在应该处于与此非常相似的 MySQL 提示符下:

mysql>

如果您还没有创建 MySQL 用户,请参阅我们的创建 MySQL 用户教程。

查看 MySQL 用户的授权

使用以下命令检查用户 testuser 的授权:

SHOW GRANTS FOR 'testuser'@'localhost';

撤销对 MySQL 用户的权限

撤销权限的基本语法如下:

REVOKE permission ON database.table FROM 'user'@'localhost';

以下是常用权限的简短列表:

  • ALL – 允许完全访问特定数据库。 如果未指定数据库,则允许完全访问整个 MySQL。
  • CREATE – 允许用户创建数据库和表。
  • DELETE – 允许用户从表中删除行。
  • DROP – 允许用户删除数据库和表。
  • EXECUTE – 允许用户执行存储的例程。
  • GRANT OPTION – 允许用户授予或删除其他用户的权限。
  • INSERT – 允许用户从表中插入行。
  • SELECT – 允许用户从数据库中选择数据。
  • SHOW DATABASES – 允许用户查看所有数据库的列表。
  • UPDATE – 允许用户更新表中的行。

示例 #1: 要从我们在上一个教程中创建的用户 testuser 撤销所有数据库 * 和所有表 * 的 CREATE 权限,请使用以下命令:

REVOKE CREATE ON *.* FROM 'testuser'@'localhost';

使用星号

代替数据库或表是一个完全有效的选项,并暗示所有数据库或所有表。 示例 #2:

REVOKE DROP ON tutorial_database.* FROM 'testuser'@'localhost';

要撤销 testuser 在特定数据库 tutorial_database 中删除表的能力,请使用 DROP 权限:

注意:如果指定的用户没有指定的权限,那么您将收到错误消息。 请务必使用 SHOW GRANTS 命令(如上所示)来查看授予了哪些权限。

FLUSH PRIVILEGES;

完成权限更改后,最好使用 flush 命令重新加载所有权限!