针对CMS的MySQL用户的推荐SQL权限

时间:2009-10-30 16:11:44

标签: sql mysql security privileges

我最近一直在试验很多网络开发应用程序,如Drupal,Moodle,Efront和Elgg。为了更好的安全性,我使用Parallels在Mac OS X 10.4内的虚拟XP机器上的XAMPP设置上运行测试服务器。我认为这应该是非常安全的,对吗?

安装像Elgg这样的软件时,它要求我在MySQL服务器中创建一个用户来访问数据库。我想知道我的创建新用户的方法是否正确,以及我应该授予该用户的权限。

目前,我通过进入PHPMyAdmin,MySQL数据库,用户表和插入新行来创建新用户。它是否正确?出于某种原因,它并不总是有效。

PS - 我应该为所有这些烦恼,还是让每个软件都使用我的root帐户?

2 个答案:

答案 0 :(得分:1)

您使用的MySQL用户权限非常重要,可以防止您被黑客入侵。您应该遵循最小权限访问系统。

在PHPMyAdmin中添加用户: 1)以root身份登录 2)转到“权限”选项卡 3)单击“添加新用户”。

PHPMyAdmin将MySQL权限分组为数据,结构和管理。

对于Web应用程序,应禁用“管理”权限,只有root应具有此访问权限。除非应用程序允许查询堆叠,否则不能在SQL Injection漏洞利用中使用“管理”权限。 (大多数人不允许这样做!)

在安装Web应用程序期间,构建数据库需要“结构”权限,但在Web应用程序的操作过程中几乎不需要这些权限,因此可以关闭它们。

“数据”部分很棘手。 “FILE”权限是您可以为Web应用程序提供的最危险的权限。原因是它允许黑客使用SQL Injection漏洞来读取和写入服务器上的文件。 “FILE”访问是唯一可以授予攻击者远程执行代码(RCE)的权限,并且必须始终禁用。

最后但并非最不重要的是,Apache Friends XAMPP是一款糟糕的软件。已知的漏洞存在并且已经未修补近一年。我重新开始使用Ubuntu的LAMP安装,它既易于使用又安全。

答案 1 :(得分:0)

如果直接在用户表中插入行,则必须单击权限页面上的FLUSH PRIVILEGES链接以强制mysql再次查看users表。

更好的方法是使用phpmyadmin上的权限页面来设置新用户。到达那里,点击左栏顶部的房子徽标。然后在屏幕右侧,单击特权链接。

你绝对不应该让你的软件只使用root帐户。您应该为每个应用程序创建一个具有MOST RESTRICTIVE权限的用户。