简体   繁体   English

如何在Java中检查数据库表权限? (独立于数据库)

[英]how to check database table permissions in java? (DataBase independently)

Does anyone know a way (in java) to check permissions to a specific table for a user? 有谁知道一种方法(在Java中)来检查用户对特定表的权限? It has to work on the most Databases. 它必须在大多数数据库上工作。 SELECT right is simple to check (just trying to execute a simple SELECT statement), but how to check INSERT permission? SELECT权限很容易检查(只是尝试执行一个简单的SELECT语句),但是如何检查INSERT权限?

You can use the DatabaseMetaData to get this information. 您可以使用DatabaseMetaData获取此信息。 It should work in most cases. 在大多数情况下,它应该可以工作。 However, it might be inaccurate in special cases, if the privileges can not be represented in this abstract way: 但是,如果不能以这种抽象方式表示特权,则在特殊情况下可能不准确:

DatabaseMetaData metaData connection.getMetaData();
metaData.getTablePrivileges();
metaData.getColumnPrivileges();

尽管这不是直接的解决方案,但是我想到的唯一选择是使用TRY CATCH块,发出INSERT语句,然后检查异常情况下返回的java.sql.SQLException对象中的错误消息。

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

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