ORA-01031:权限不够创建JMS连接到Oracle话题
-
22-08-2019 - |
题
我的同事是有一个问题创建(非持久)订户从Java一个Oracle队列。
在队列由一个模式(说OWNER)拥有;他试图连接作为另一个用户(比如客户)。用户已经被授予特权DEQUEUE(和ENQUEUE,为它的价值)的所有者。
当他创建队列与“multiple_consumers”选项设置为FALSE,一切工作正常。当“multiple_consumers”被设置为TRUE(我们需要的设置),它失败,出现以下:
oracle.jms.AQjmsException: ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 5757
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_AQJMS", line 129
ORA-06512: at line 1
at oracle.jms.AQjmsSession.addDurableSubscriber(AQjmsSession.java:3708)
at oracle.jms.AQjmsSession.createSubInOldMode(AQjmsSession.java:2742)
at oracle.jms.AQjmsSession.createDurableSubscriber(AQjmsSession.java:2400)
at oracle.jms.AQjmsSession.forceCreateOldSubscriber(AQjmsSession.java:2884)
at oracle.jms.AQjmsSession.createConsumer(AQjmsSession.java:6820)
如果他连接作为所有者,它成功。
我如何找出我需要授予用户需要什么权限?
解决方案
您要么必须创建一个持久订阅者,或有AQ_ADMINISTRATOR_ROLE授予连接的用户 - 不是很大的安全模型,但是这是Oracle的暂时执行
https://forums.oracle.com/forums/thread.jspa ?MESSAGEID = 9793091
不隶属于 StackOverflow