2016-09-26 40 views
2

我需要爲應用程序查找RDBMS表元數據。我能夠通過java.sql.DatabaseMetaData找到列元數據,表的存在,並通過在java.sql.Statement上執行查詢來進行行計數。有什麼方法可以檢查RDBMS數據庫一般表的讀取和寫入信息嗎?

如何需要檢查

  • 布爾的CanRead()
  • 布爾canWrite()

上表。

我發現isReadOnly()方法在DatabaseMetaData類。但它

檢索此數據庫是否處於只讀模式。

有什麼方法可以在表級別檢查RDBMS數據庫的這些功能嗎?

+0

我相信你是問是否有一種方法*比其他*試圖讀取一行,開始一個事務,試圖寫一行,並回滾事務。對? –

+0

@MikeNakis是.. –

回答

0

您正在尋找getTablePrivileges()

獲取用於在目錄中使用的每個表的訪問權的說明。請注意,表特權適用於表中的一個或多個列。這將是錯誤的假設,這個權限適用於所有的列(這可能是一些系統真實的,但不是所有的事實。)

從結果將包含你正在尋找的信息列PRIVILEGE。如果我沒有記錯的話,你會在結果中得到授予的每個特權的一行。

至於getTablePrivileges() Javadoc建議,你可能還需要檢查getColumnPrivileges() - 但是這取決於你的使用情況和你所期望的DBMS支持

相關問題