2013-01-21 37 views
0

2007年,我在我的公司內部建立了一個內部網站,這個網站已經習慣了這一天。那時我沒有太多關於安全性的內容,而且由於我完全控制了數據庫,所以我編寫了用戶管理系統,它創建了MySQL數據庫用戶(是的,'whoever'@'specifichost'類型)。需要管理員來創建這樣的用戶,而不需要用戶註冊。特殊腳本計算了哪些DB對象權限是必需的。沒有「記住我」是可能的。通過與MySQL用戶的PHP登錄 - 爲什麼不?

由於現在我需要重新訪問登錄/註冊系統,並且每個人都會詢問Facebook類型的登錄信息,所以我想知道是否使用MySQL用戶名/密碼,直接在數據庫上授予他們的權限是不是一個好主意? (假設虛擬主機允許創建多個用戶)。

+1

另請參閱[虛擬主機不允許CREATE USER權限](http://stackoverflow.com/a/14076132) – eggyal

+0

@eggyal我看到了,謝謝。 – Kitet

回答

2

通常,可以基於每個應用程序或每個服務基礎爲數據庫創建用戶/權限,而不是針對單個應用程序最終用戶帳戶。 MySQL的訪問控制通常不夠精細,不足以用於用戶特定的權限。用戶特定的權限通常會在應用程序層實現,因爲您經常需要對誰有權訪問的內容進行記錄級控制,這是MySQL不允許的。

由於所有基於用戶的訪問邏輯都只存在於您的應用程序層,因此這將使您在使用數據庫時更容易處理連接管理和故障排除問題。