2012-01-27 86 views
1

有沒有辦法連接到MySQL的遠程實例,而無需使用Java反編譯器公開MySQL憑據?JDBC:安全地訪問遠程Mysql數據庫?

如果桌面應用程序連接到MySQL服務器,您應該爲用戶分配一個只讀訪問權限來訪問它嗎?這足夠安全嗎?

回答

2

如果你發現自己在問這些問題,那麼它可能是時間來執行一些委託授權。用戶不需要直接從桌面應用程序訪問MySQL,而是創建一個瘦服務器層,併爲每個用戶分配一組憑據以供訪問。所有對數據庫的訪問都將通過該服務器進行調解,該服務器負責確保數據庫的安全並確保實際上只向每個用戶提供與每個用戶相關的數據。

+0

想過這個太多,但再不會是可能發現中間服務器層,只需直接使用此服務器?無論如何限制從Java桌面應用程序源於此服務器的訪問? – KJW 2012-01-27 07:09:49

+0

您永遠無法阻止發現您的服務器。這只是互聯網的現實。但是,您可以應用不斷提高的安全級別來加固安全級別。請記住,這變得越來越昂貴,所以你必須平衡安全性與可用性,坦率地說,你要保護的數據的重要性。首先,我建議您使用SSL保護您的服務器並使用摘要式身份驗證保護客戶端通信。 – Perception 2012-01-27 12:10:35

0

,如果你的問題是避免密碼編譯您可能混淆你的應用程序..

,你可以在你的應用程序中使用只讀憑據,但是這並不能阻止日編譯(但是,如果取消編譯用戶將無法更改任何數據,這將是一種方式)。

,你可以使用自定義的類裝載器從網絡加載類(該類將包含憑證)

沒有上述技術將防止經驗豐富的用戶從去編譯和得到他們的手憑證。