簡體   English   中英

數據庫連接的最佳方法

[英]Best approach for DB connections

什么是數據庫連接的最佳方法。

一種具有所有操作所有特權(CRUD)的連接

要么

2個連接,一個用於DELETE,另一個用於其他(CRU)

要么

每種操作使用不同的連接。

哪個是最佳性能和安全性。

我個人會堅持一種聯系。

具有1個具有所有特權的連接和具有2個連接之間沒有安全性區別。 如果攻擊者可以訪問CRU憑據,那么他們無論如何都可以輕松訪問其他憑據。

在很大程度上,保持簡單很有價值。 您不必花太多時間去考慮管理連接,那么您就獲得了更多的諸如安全編碼,最佳實踐,管理漏洞之類的空間。

如果您特別關注批量刪除,則可以使用存儲的例程(從此處開始: http : //dev.mysql.com/doc/refman/5.1/en/stored-routines.html )刪除單個行。 。 這樣,您的PHP連接可以具有CRU特權(但不能刪除),並具有運行此存儲的過程的權限。 這意味着攻擊者必須多次調用此過程才能刪除多個記錄,並且(如果操作正確)將無法使用單個SQL語句來進行大規模刪除。

常見的做法是對數據庫具有單一連接(用戶),並具有對SELECT,INSERT,UPDATE和DELETE的授予權限。

如果要擁有具有不同權限的單獨用戶,則創建一個僅具有SELECT的用戶,以及另一個具有所有CRUD的用戶。 然后在腳本中選擇這些連接之一,將其用於執行所有查詢。

從一個客戶端打開多個連接不是一個好主意,因為您實際上將能夠連接的客戶端數量減少一半。

這僅在只有一台數據庫服務器的情況下適用,如果使用只讀副本,則與不同數據庫(在不同服務器上)的多個連接不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM