私の同僚の一人がJavaからOracleキューへの(耐久性のない)サブスクライバを作成する際に問題が発生しています。ORA-01031:OracleへのJMS接続の作成に関する権限が不十分です
キューは1つのスキーマ(たとえば、OWNER)によって所有されています。彼は別のユーザー(SUBSCRIBERと言う)として接続しようとしています。 SUBSCRIBERは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)
、それが成功します。
サブスクライバーにどのような特権を与える必要がありますか?
優れた応答性を提供します。とても有難い。 – Hobo
は、他の時間を計算するためにロール名(真ん中に「I」がない)を修正しました。 – Vlad