如何在 MySQL 中创建新用户并授予权限

介绍

MySQL 是一种开源数据库管理软件,可帮助用户存储、组织和以后检索数据。它有多种选项可以在表和数据库中授予特定用户细微的权限——本教程将简要概述众多选项中的一些。

如何创建新用户

让我们从在 MySQL shell 中创建一个新用户开始:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

注意:在本教程中在 MySQL shell 中添加用户时,我们将指定用户的主机 localhost 而不是服务器的 IP 地址。localhost 是一个主机名,意思是“这台计算机”,MySQL 会特别对待这个特定的主机名:当使用该主机的用户登录 MySQL 时,它将尝试使用 Unix 套接字文件连接到本地服务器。因此,localhost 通常在您计划通过 SSH 连接到您的服务器或运行本地mysql客户端以连接到本地 MySQL 服务器时使用。

这一点 新用户没有权限对数据库做任何事情。事实上,即使新用户 尝试登录(使用密码, 密码),他们将无法访问 MySQL shell。

因此,首先要做的是让用户能够访问他们需要的信息。

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

该命令中的星号分别表示它们可以访问的数据库和表——该特定命令允许用户读取、编辑、执行和执行跨所有数据库和表的所有任务。

请注意,在此示例中,我们授予 新用户对我们数据库中所有内容的完全根访问权限。虽然这有助于解释一些 MySQL 概念,但对于大多数用例来说可能不切实际,并且可能会使您的数据库安全处于高风险中。

确定要为新用户设置的权限后,请务必重新加载所有权限。

FLUSH PRIVILEGES;

您的更改现在将生效。

如何授予不同的用户权限

以下是用户可以享受的其他常见可能权限的简短列表。

  • ALL PRIVILEGES - 正如我们之前看到的,这将允许 MySQL 用户完全访问指定的数据库(或者如果没有选择数据库,则可以跨系统进行全局访问)
  • CREATE- 允许他们创建新表或数据库
  • DROP- 允许他们删除表或数据库
  • DELETE- 允许他们从表中删除行
  • INSERT- 允许他们向表中插入行
  • SELECT- 允许他们使用SELECT命令来读取数据库
  • UPDATE - 允许他们更新表行
  • GRANT OPTION - 允许他们授予或删除其他用户的权限

要向特定用户提供权限,您可以使用此框架:

GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';

如果您想让他们访问任何数据库或任何表,请确保在数据库名称或表名称的位置放置一个星号 (*)。

每次更新或更改权限时,请务必使用刷新权限命令。

如果您需要撤销权限,其结构几乎与授予权限相同:

REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';

请注意,在撤销权限时,语法要求您使用FROM,而不是TO我们在授予权限时使用的。

您可以通过运行以下命令来查看用户的当前权限:

SHOW GRANTS FOR 'username'@'localhost';

正如您可以使用 DROP 删除数据库一样,您可以使用 DROP 来完全删除用户:

DROP USER 'username'@'localhost';

要测试您的新用户,请键入以下内容注销:

quit

并在终端中使用此命令重新登录:

mysql -u [username] -p

结论

完成本教程后,您应该了解如何在 MySQL 数据库中添加新用户并授予他们各种权限。

Z2ER大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除,若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与Z2ER无关。本站发布的内容若侵犯到您的权益,请联系z2er@z2er.com删除,将及时处理!
Z2ER » 如何在 MySQL 中创建新用户并授予权限