上一个系列:
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 命令重新加载所有权限!