我有一个Java应用程序,该应用程序查询数据库表,当前用户帐户可能会或无法访问该数据库表。如果返回异常,我想区分AccessDenied和正在关闭/离线的数据库服务器。我希望当用户对表没有选择特权时,db2会抛出PermissionDeniedDataAccessException。但是,当我对其进行测试时,db2抛出了InvalidDataAccessResourceUsageException。

捕获InvalidDataAccessResourceUsageException并将其作为AccessDenied异常进行处理是否安全?为什么db2不抛出PermissionDeniedDataAccessException?

仅供参考:我使用的是db2的JDBC驱动程序,而不是ODBC的驱动程序,因此我希望Java支持更好。

最佳答案

如果Spring异常转换算法错误地将SQL异常代码映射到Spring的异常,则您可以自己确定SQL代码并自定义异常转换,如下所述:12.2.4 SQLExceptionTranslator

关于java - db2 9引发InvalidDataAccessResourceUsageException而不是PermissionDeniedDataAccessException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2065638/

10-11 22:28
查看更多