gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 20:53:07 24 4
gpt4 key购买 nike

我正在使用 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。

关于java - 使用 jdbc 获取允许用户使用的所有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34929122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com