2013-07-03 25 views
0

我想使用Java和MySQL創建客戶端數據庫應用程序。據我所知,Java可以反編譯並直接從客戶端使用MySQL,數據庫憑證將被公開。使用MySQL數據庫的Java客戶端

如何使用MySQL服務器創建Java客戶端,但用戶無法找出我的數據庫憑據?

+0

您可以嘗試將它們存儲在加密的字符串中。您可以要求用戶提供用戶憑據... – MadProgrammer

+0

嘗試[this](http://stackoverflow.com/questions/442862/how-can-i-protect-mysql-username-and-password-from-decompiling)回答 –

+0

如果MySQL與您的應用程序一起在本地運行,那麼絕對沒有**的方式可以阻止對它的訪問。 –

回答

1

如果您正在創建Web應用程序,那麼您可以在服務器配置文件中創建數據源。這樣,您的數據庫憑據將位於服務器文件本身中,您可以在java fiels中使用數據源名稱。

0

客戶端必須知道數據庫憑證才能連接。

您必須爲您的應用程序創建服務器,它將爲客戶端提供API並連接到數據庫本身。 API將隱藏您需要的所有內容,甚至會獨立於RDBMS類型。請參閱Client-server model此處

0

沒有任何東西能夠完全爲您節省第三方來逆向工程應用程序並獲取您的數據庫憑據。 不要以任何形式將它們硬編碼到您的應用程序中。

我認爲針對您的問題最適當的解決方案是添加一些授權的味道。

您可以在應用程序和數據庫之間添加圖層(像SOAP這樣的服務層,或類似REST API的),並限制每個用戶的權限。另一個選擇是使用mysql的權限管理。

希望這會有所幫助。

相關問題