我使用jdbc连接到数据库,从数据库获取所有模式和表的列表(我假设某些数据库此时可能只返回当前用户可以查询的表,但某些数据库返回完整列表当用户试图查询某些表时,他得到的权限不足"错误。 有没有办法只获取表,用户只能使用jdbc功能进行查询?无需向数据库写特殊查询。
现在我正在看
DatabaseMetaData dbMeta = connection.getMetaData()
dbMeta.getTablePrivileges(null, null, null);
但是从这个查询的结果来看,不太清楚哪些表可以用户查询。
目前我正在使用SAP HANA数据库,但一般情况下它可能是任何数据库,所以我正在寻找一些常用的方法。
答案 0 :(得分:0)
请看
您必须从ResultSet获取每一行,并查询列名TABLE_NAME,其中包含表名和PRIVILEGE,其中包含每个表的访问权。