문제

내 동료 중 한 명이 Java의 Oracle Deue에 (내구성이없는) 구독자를 만드는 데 문제가 있습니다.

큐는 하나의 스키마 (예 : 소유자)가 소유합니다. 그는 다른 사용자 (구독자)로 연결하려고합니다. 가입자는 소유자에 의해 Dequeue 권한 (및 가치가있는 것에 대한 Enqueue)을 부여 받았습니다.

그가 "multiple_consumers"옵션으로 큐를 만들 때 모든 것이 잘 작동합니다. "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_ADMINISTRARTRO_ROLE을 연결 사용자에게 부여해야합니다. 훌륭한 보안 모델은 아니지만 당분간 Oracle의 구현입니다.

https://forums.oracle.com/forums/thread.jspa?messageid=9793091

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top