2013-03-05 21 views
0

我正在創建一個mysql數據庫以便爲高頻網站服務,並且我正在努力選擇如何規定對此數據庫的訪問權限。網站的每個用戶都應該有個人訪問數據庫的權限,或者應該該網站應該訪問數據庫併爲客戶提供服務?我應該使用哪個數據庫用戶架構來爲高頻網站提供服務?

例如,如果我在網站上有Mike和Stanley用戶,我應該在數據庫中創建用戶'mike'@'localhost'和'stanley'@'localhost'嗎?

或者我應該創建'mywebuser'@'localhost'來爲這兩個客戶端提供服務,有一個存儲過程來檢查他們訪問數據庫的能力嗎?

+4

'網站上的每個用戶都應該有個人訪問數據庫的權限,還是應該訪問數據庫併爲客戶提供服務?後者通常是如何實現的。用戶身份驗證應在應用程序級別進行。大框架可以幫助你開箱即用。 – 2013-03-05 11:47:27

+0

你會在數據庫中存儲什麼? – Shoe 2013-03-05 11:47:36

+0

該數據庫將存儲許多信息,如客戶的個人信息,他們的偏好... 我應該看看哪個框架? – Kruskaal 2013-03-05 13:16:37

回答

3

舉例來說,如果我有邁克和斯坦利用戶在網站上,我應該 創建用戶「邁克」 @「localhost」的和「斯坦利」 @在DB「localhost」的?

或者我應該創建'mywebuser'@'localhost'來爲這兩個 客戶端提供服務,有一個存儲過程來檢查他們訪問數據庫的能力是否爲 ?

你一定要爲你的應用程序創建一個用戶,而不是你的應用程序的用戶。出於安全原因,請務必僅向該用戶授予必要的權限。對於只對數據庫執行INSERT,UPDATE,DELETE和SELECT操作的應用程序,您可能不需要CREATE,ALTER或DROP權限。

在mysql連接時檢查用戶的登錄憑據將要求您捕獲連接期間拋出的C錯誤,即generally a bad practice

+0

非常感謝您的回答。所以我應該只有一個用戶,但我不能使用用戶變量(@var),因爲他們可能會在應用程序用戶之間發生衝突。就像mike set @ var = 2;然後斯坦利使用'select @var'因爲他們在使用同一個會話,他會得到'2'。 – Kruskaal 2013-03-05 13:14:18

+0

我檢查了這個問題,最後看來會話變量會重置,如果另一個客戶端通過應用程序連接到數據庫,因爲它會打開一個新的會話(很明顯,你會告訴它,但它有點困惑在我的頭..) 非常感謝! – Kruskaal 2013-03-05 15:59:41

相關問題