1.控制台:执行过 Hibernate: select count(*) as y0_ from V_TRANSDETAIL_INFO this_ 后
报错:Caused by: java.sql.SQLSyntaxErrorException: ORA-01031: 权限不足
分析:
debug,跟进去确实是因为查询存储过程V_TRANSDETAIL_INFO报错
进入数据库(quas_dev):执行:SELECT * FROM v_transdetail_info → ORA-01031: 权限不足
然后在quas用户下,给quas_dev赋予查询权限:grant select on v_transdetail_info to quas_dev → oracleORA-01720: 不存在 'CTVP.V_A' 的授权选项
那么是什么原因呢,因为quas还需要授权视图给quas_dev用户,但是quas用到的表(或视图)是CTVP用户下的,所以除了将V_A授权select权限给quas外,还要授权操作权限。
比如这里就需要在CTVP用户下,授权grant操作权限给quas,那么quas才能继续授权给quas_dev。如下:
ctvp用户下:
grant select on ctvp.tbl_bat_clr_dtl to quas with grant option;
quas用户下:
grant select on quas.v_transdetail_info to quas_dev;
这样,就不会报错啦