MySQL用户权限

MySQL数据库中的用户权限快速入门

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

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

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

用户不能做太多事情。我们可以说实际上什么也做不了。

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

要使用户执行任何操作,您必须授予特权做到这一点。

您可以使用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';

撤销特权

撤消示例DROP特权<database>

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

要撤消所有特权,请运行:

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

您可以通过运行以下命令来可视化单个用户的特权:

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

更多数据库教程: