繁体   English   中英

获取jdbc允许用户使用的所有表

[英]Get All tables allowed to user with jdbc

我正在使用jdbc连接到数据库,从数据库中获取所有模式和表的列表(我假设此时某些数据库可能仅返回当前用户可以查询的表,而某些数据库则返回表的完整列表)以及何时用户尝试查询某些表,他会得到“权限不足”错误。 有没有办法只获取表,用户只能使用jdbc功能进行查询? 无需向数据库编写特殊查询。

现在我在看

      DatabaseMetaData dbMeta = connection.getMetaData() 
      dbMeta.getTablePrivileges(null, null, null);

但是从查询结果来看,尚不清楚用户可以查询哪些表。

目前,我正在使用SAP HANA数据库,但通常它可以是任何数据库,因此我正在寻找一些常用方法。

请看

http://docs.oracle.com/javase/7/docs/api/java/sql/DatabaseMetaData.html#getTablePrivileges%28java.lang.String,%20java.lang.String,%20java.lang.String%29

您必须从ResultSet中获取每一行,并查询包含表名的列名TABLE_NAME和包含对每个表的访问权的PRIVILEGE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM