2010-05-31 60 views
1

我們需要在使用MySql 5.0的客戶端部署應用程序(由Java開發)WAR文件。但是我們想限制客戶端(應用程序所有者,而不是網頁訪問者)修改數據庫中的任何數據。有什麼辦法保護數據。客戶端可以使用該應用程序,但他們不應該能夠更改數據庫中的任何值。怎麼做?如何限制用戶修改mysql數據庫中的數據?

+0

@BalusC:感謝編輯並使其理解:) – Paul 2010-06-01 04:34:09

回答

3

這是不可能的;如果您在客戶端部署應用程序,他將擁有憑據,並且將能夠登錄到MySQL數據庫,並且他是應用程序。因此他可以對應用程序可以進行的任何數據庫更改。

解決這個問題的唯一方法就是在客戶端和你的MySQL數據庫之間建立一個層,並確保你控制這個,這樣它纔可能做出'合法'的改變。

+0

如果憑證是針對沒有修改權限的用戶呢?或者只使用某些存儲過程? – Konerak 2010-05-31 12:16:56

+0

客戶端和MySQL數據庫之間必須做什麼。提及清楚是否可能! – Paul 2010-05-31 12:25:48

+1

如果證書是針對沒有修改權限的用戶的,則應用程序(和存儲過程)也不能進行更改。這與問題相反。 – wump 2010-05-31 12:26:50

5
+0

@hgulyan:我正在使用MySql 5.0。但是你的鏈接指向sql-server。對此有任何建議。 – Paul 2010-05-31 11:56:37

+1

@保羅:對不起,我用新的鏈接編輯了我的答案。 – hgulyan 2010-05-31 11:58:34

+0

我用新的鏈接和示例更新了我的答案。 – hgulyan 2010-05-31 12:15:53

2

只需編寫相應的代碼,使用戶不會有任何機會來修改數據庫?即該代碼不會執行任何INSERTUPDATE和/或基於登錄/角色控制訪問。

老實說,我真的不希望這裏的任何問題,或者代碼必須傾向於SQL injectionattacks

更新:上面的答案實際上是無關的,因爲問題是澄清的。轉入社區Wiki。