为 Linux MySQL 创建具有最小权限的非 root 用户,因为使用 root 用户并不安全

为 Linux MySQL 创建具有最小权限的非 root 用户,因为使用 root 用户并不安全

从安全角度来看,MySQL 根用户的一般规则是:

“不要使用 root 身份对任何 Web 应用程序进行 MySQL 连接、选择、更新或删除查询。而是创建并使用具有最小权限的另一个 MySQL 用户。”

好的。此类用户需要哪些最低权限?如何在 MySQL 中创建并分配最低权限?我还没有找到有关此问题的任何指南/文章。

感谢您的帮助。

答案1

这个问题可能已经回答过几次了,但我们还是再回答一次。

以下是 cPanel 的实现方式,您可能需要遵循:

  1. 创建数据库 db1
  2. 创建本地主机用户并设置密码
  3. 将用户分配给数据库
  4. 为该用户分配该数据库所需的权限(cPanel 为数据库中的所有表全局分配权限,但您可以按表甚至按表列分配权限)

表/索引操作最常用的权限是 ALTER CREATE DROP 和 INDEX

最常用的数据操作是 DELETE INSERT SELECT UPDATE

以下是 MySQL 5.7 的更完整列表: https://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html

您可以使用 GRANT 命令分配权限,如下面针对 MySQL 5.7 的说明:http://dev.mysql.com/doc/refman/5.7/en/grant.html

在大多数情况下,你会授予本地主机上的用户访问权限,但你可以添加一些网络地址,甚至一些包含%的通配符地址

让我们授予用户 db1_user 对数据库 db1 的所有表的 SELECT 权限(仅读取数据),使用密码 mypass:

授予 db1.* 上的选择权限给 db1_user@localhost,标识为 'mypass';

您可以使用 mysql 实用程序以 root 或对该数据库对象具有 GRANT 权限的其他用户身份发出 SQL 语句。以 root 身份运行 mysql:

$ mysql -u 根 -p

答案2

您可以根据应用程序的需要授予权限。如果您的应用程序所需的只是SELECT一张表,那么就应该授予用户所有权限。

对此没有“指南”,因为这完全取决于应用程序所有者对应用程序的实际要求的理解。

相关内容