mysql用户权限会影响性能吗?

时间:2011-04-18 14:24:42

标签: mysql performance security

我开始对我的公司正在接管的基于网络的系统进行维护。它非常大(至少对我们的标准而言)。系统的设计者创建了一个包含两个用户的数据库,一个只有SELECT个权限,另一个还有UPDATEDELETEINSERT权限。

我想知道为什么他们会这样做。当SELECT语句只执行SELECT个特权时,它们的语句会更快吗?如果没有,还有什么其他原因可以做这样的事情?

请注意;我现在无法联系原始开发者,我知道这将是一个简单的方法来获得答案....

编辑:基于答案我还有其他一些问题。 Web应用程序是唯一使用该数据库的应用程序。没有其他人连接到数据库。程序员(只有两个)可以完全控制连接用户的操作。他们已经很好地防范了代码中的注射。两个用户的解决方案不仅仅是让事情变得更复杂吗?这种“安全”真的有必要吗?

4 个答案:

答案 0 :(得分:2)

可能想要做的权限是:授予一个用户读访问权限和另一个写访问权。

答案 1 :(得分:2)

它可以简单地用于数据库用户级别的数据安全性。一个用户类型只读,另一个允许修改。

答案 2 :(得分:1)

我不知道是否有任何理由这样做以获得性能,但可能存在安全原因。 select用户最适合前端和普通搜索,而更新,删除和插入用户则适合后端。

在SQL注入漏洞的情况下,select用户更适合公众......除此之外我无法回答你。

答案 3 :(得分:0)

要回答您的问题,权限不会影响效果。它们会影响您对数据库的操作。唯一的性能影响权限是检查您是否具有该操作的require权限。这不是(或通过用户可用的其他权限受到轻微影响)。

很明显,实施者遵循(至少部分)最小特权原则。这是一种很好的安全措施。鉴于您有两个ID,我认为它们适用于应用程序。应用程序只需要读取数据应该使用只有Select权限的用户ID。其他应用程序应使用其他用户ID。

不使用该应用程序的个人用户应拥有自己的具有适当权限的用户ID。

如果您的用户或应用程序需要更新数据但不能删除数据,我将使用仅具有SELECT,INSERT和UPDATE权限的用户ID。