2011-12-13 25 views
-4

假設我們有一個網絡應用程序,支持人員可以查看關於系統的各種信息 。一個這樣的網頁允許用戶在某些數據庫表上執行選擇查詢。這些應用程序可以作爲一個地方來查找有關環境的大部分細節。如何找出sql select語句中使用的表格

數據庫解決方案始終存在,這不是必需的。

我正在尋找方法來找出select語句在Java中查詢哪些表。 那麼有沒有一個正則表達式或任何其他方式來找出表。

+0

您使用的數據庫是? mysql中的'explain'機制是你可能希望探索的。這不是用Java實現的,而是作爲SQL的一部分。 –

+3

這是從安全的角度來看?爲什麼不只是在這些特定的表上授予'SELECT'權限? –

+0

這聽起來像是你問如何在sql查詢中使用FROM,這不應受哪種語言發送查詢的影響。請提供更多細節。 – Thomas

回答

2

最好的方法是在數據庫級別實現它。數據庫具有非常好的安全性定義。您可以定義用戶X只能訪問特定的表。嘗試訪問其他表將導致異常。只要檢查在這種情況下拋出哪個異常並實現處理它的邏輯即可。

其他方法是解析SQL語句並在執行語句之前檢索數據庫表名。

看看下面的discussion

+0

我在找sql解析器,謝謝 – changed

+0

歡迎光臨。請享用。 – AlexR