一个特权调度程序用户 - user1 接收电子邮件通知,而另外两个(user2,user3)没有。
我想在 user3 模式上执行下面的代码,我们在 user2 上成功尝试了这个(代码直接在具有临时 sys.dbms_aq 访问权限的模式上执行)所以他现在收到他的通知。为 user1 上的 bot 用户代理启用了数据库访问。
如您所见,我知道“什么”解决了问题,但不知道该怎么做:-)
问题是 - 我们无法直接访问第二个帐户(user3)如何代表 user3 执行此代码?
declare
reginfo1 sys.aq$_reg_info;
reginfolist sys.aq$_reg_info_list;
begin
reginfo1 := sys.aq$_reg_info('SYS.SCHEDULER$_EVENT_QUEUE:SCHED$_AGT2$_X',
1,
'plsql://SYS.SCHEDULER$_JOB_EVENT_HANDLER',
null);
reginfolist := sys.aq$_reg_info_list(reginfo1);
dbms_aq.register(reginfolist, 1);
end;
已经尝试在 user3 上创建过程并立即执行匿名块,但它仍然在 DBA_QUEUE_SUBSCRIBERS 中向 USER# 1 而不是 3 注册。
数据库版本是 11.2.0.3.0 在 unix 上。