有没有办法检查RDBMS数据库的一般表的读取,写入信息?

时间:2016-09-26 11:21:54

标签: java jdbc rdbms

我需要为应用程序找到RDBMS表元数据。通过在java.sql.DatabaseMetaData上执行查询,我能够找到列元数据,使用java.sql.Statement存在表和行计数。

如何检查

  • boolean canRead()
  • boolean canWrite()

在桌子上。

我在isReadOnly()课程中找到了DatabaseMetaData方法。但它

  

检索此数据库是否处于只读模式。

有没有办法在桌面级别为RDBMS数据库检查这些功能?

1 个答案:

答案 0 :(得分:0)

您正在寻找getTablePrivileges()

  

检索目录中可用的每个表的访问权限的描述。请注意,表权限适用于表中的一个或多个列。假设此特权适用于所有列是错误的(对于某些系统可能是这样,但并非所有系统都适用。)

ResultSet中的列PRIVILEGE将包含您要查找的信息。如果我没记错的话,你会在结果中为获得的每个权限获得一行。

正如getTablePrivileges()的JavaDoc建议的那样,您可能还需要检查getColumnPrivileges() - 但这取决于您的用例和您希望支持的DBMS