ORA-01031: privilèges insuffisants créant une connexion JMS au sujet d'Oracle
-
22-08-2019 - |
Question
Un de mes collègues est d'avoir un problème de créer un abonné (non durable) à une file d'attente Oracle de Java.
La file d'attente est possédée par une schéma (disons OWNER); il essaie de se connecter comme un autre utilisateur (dire ABONNE). ABONNE a été accordé des privilèges de DEQUEUE (et ENQUEUE, pour ce qu'il vaut la peine) par le propriétaire.
Quand il crée la file d'attente avec le « multiple_consumers » option sur FAUX, tout fonctionne bien. Lorsque « multiple_consumers » est réglé sur TRUE (paramètre dont nous avons besoin), il échoue avec les éléments suivants:
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)
S'il se connecte en tant que propriétaire, il réussit.
Comment puis-je travailler sur les privilèges que je dois accorder à ABONNE?
La solution
Soit vous devez créer un abonné durable, ou avoir le AQ_ADMINISTRATOR_ROLE accordé à l'utilisateur de se connecter -. Pas un grand modèle de sécurité, mais qui est la mise en œuvre d'Oracle pour le moment
https://forums.oracle.com/forums/thread.jspa ? messageId = 9793091