数据库连接的最佳方法

时间:2013-10-27 06:19:19

标签: php mysql sql database connection

什么是数据库连接的最佳方法。

一个具有所有操作权限的连接(CRUD)

或者

2个连接,一个用于DELETE,另一个用于其他连接(CRU)

或者

每个操作的不同连接。

哪种方法最适合性能和安全性。

2 个答案:

答案 0 :(得分:0)

我个人会坚持使用一个连接。

与所有权限建立1连接并具有2个连接之间没有安全性差异。如果攻击者能够访问CRU凭证,那么他们也可以轻松访问其他凭证。

在很大程度上保持简单是有价值的。您需要考虑的管理连接的次数越多,那么您在安全编码,最佳实践,管理漏洞等其他方面所拥有的空间就越大。

如果您特别关注批量删除,可以使用删除单行的存储例程(从此处开始:http://dev.mysql.com/doc/refman/5.1/en/stored-routines.html)。您的PHP连接可能具有CRU权限(但不能删除),还有运行此存储过程的权限。这意味着攻击者必须多次调用此过程才能删除多个记录,并且(如果正确完成)将无法使用单个SQL语句实现批量删除。

答案 1 :(得分:0)

通常的做法是使用SELECT,INSERT,UPDATE和DELETE的授予权限与数据库建立单一连接(用户)。

如果您想拥有具有不同权限的单独用户,请创建一个仅使用SELECT而另一个使用所有CRUD的用户。然后在脚本中选择其中一个连接使用它来执行所有查询。

从一个客户端打开多个连接并不是一个好主意,因为您实际上有一半的客户端可以连接。

仅当您只有一个数据库服务器时才适用,如果您使用只读副本,那么与不同数据库(在不同服务器上)的多个连接不是问题。