2012-09-03 25 views
1

我想讓我曾經有家的網站能夠接受兩個以上的用戶。它是可擴展的,使一個新的MySQL用戶對每個與我的網站註冊的人,每個人註冊時間運行爲每個實際用戶創建用戶?

CREATE USER $userName [IDENTIFIED BY [PASSWORD] '$userPass'] 

?然後我會以他們的名義設立mysql_connect()電話。

或者,有沒有好處/注意事項,以做這樣的事情

CREATE USER genericSiteUser [IDENTIFIED BY [PASSWORD] 'sitePass'] 

和只是把$userName在一列跟蹤誰留下什麼評論,等的?還是有第三種方法比這兩種方法做得更好?

回答

2

創建數據庫的用戶是不可擴展,也並不安全。您應該創建一個數據庫用戶,使用最少的權限(理想情況下只需插入/選擇/更新/刪除),然後使用表來跟蹤用戶。

然後,您可以創建在您的意見表的外鍵的用戶表。

+0

我認爲處理用戶在他們自己的表是比較常見的。你能解釋一下'外鍵'是什麼意思嗎?這就是我所說的'sitePass'嗎? –

+1

永遠不要使用'CREATE USER'(對於您的網站用戶)。你應該只有一個表,讓我們稱之爲'users',然後使用'insert into users values('newUserName','hashedPassword')'。然後,您的登錄代碼應該檢查與用戶輸入的用戶名和密碼相匹配的內容。我的描述過於簡單 - 您需要查看一個好的教程,以獲取正確的詳細程度,而不會令人難以置信。 –

+0

外鍵僅僅是對另一個表的引用。您只需將ID(或任何其他主鍵)放入引用表('comments')中,然後您可以在需要將用戶名連接到評論時加入該列。再次,閱讀關於概念的教程,以便比我在這裏描述的更好的想法。 –

0

否 - MySQL的CREATE USER命令用來使用戶訪問到MySQL數據庫本身。它不應該被普通的應用程序調用;確實,良好的安全實踐表明,應用程序使用的數據庫用戶不應具有管理用戶所需的SUPER權限。

隨着應用程序的用戶是完全無關用來訪問MySQL的用戶憑據,您的應用程序應該保持它的用戶數據庫中的數據表,就像應用程序使用的任何其他數據。

相關問題