MySQL用户权限的使用方法

107 阅读2分钟

关于MySQL数据库中用户权限的快速介绍

让我们看看如何向MySQL数据库的用户授予权限(称为权限)。

默认情况下,当你使用语法创建一个新的MySQL用户时

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

创建一个新的MySQL用户时,该用户不能做很多事情。我们可以说,它不能做任何事情,实际上。

它不能从任何现有数据库中读取数据,更不用说修改数据了。而且它甚至不能创建一个新的数据库。

要使一个用户做任何事情,你必须授予权限

你可以使用GRANT 命令来这样做。

我们可以使用GRANT <permission> ,使用以下权限关键字。

  • CREATE
  • DROP
  • DELETE
  • INSERT
  • SELECT
  • UPDATE
  • ALL PRIVILEGES

给予一个用户创建新数据库的权限

GRANT CREATE ON *.* TO '<username>'@'localhost';

给予用户在特定数据库中创建新表的权限

GRANT CREATE ON <database>.* TO '<username>'@'localhost';

给予用户读取(查询)特定数据库的权限

GRANT SELECT ON <database>.* TO '<username>'@'localhost';

给予用户读取特定数据库的权限

GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';

给予用户在一个特定的数据库中插入、更新和删除行的权限

GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';

给予用户删除特定数据库中的表的权限

GRANT DROP ON <database>.* TO '<username>'@'localhost';

给予用户删除数据库的权限

GRANT DROP ON *.* TO '<username>'@'localhost';

给予一个用户在特定数据库中的所有权限

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';

给予一个用户所有的权限

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

撤销一个权限

例如,在<database> ,撤销DROP 权限。

REVOKE DROP ON <database>.* TO '<username>'@'localhost';

要撤销所有权限,请运行。

REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

你可以通过运行以下命令来查看单个用户的权限。

SHOW GRANTS FOR '<username>'@'localhost';