如何解决数据库权限为read only时使用dblink时报错

目前oracle数据库为镜像库,因此只有read onliy的权限,但是需要访问其他ip的数据库,使用dblink的方式,但是放在数据源中就会产生如图的报错

image.png

目前想到是在执行语句之前,先执行set transaction read only,但是数据源里没法放分号这种,想问一下这个有没有好办法处理或者该报错有更好的解决方法,read only的权限是无法修改的。

FineReport 叶知秋丶 发布于 2023-1-4 09:35 (编辑于 2023-1-4 10:02)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2023-1-4 10:04

正常设置只读权限,账户是没有DML权限的啊

另一个而方案,你的sql直接写成存储过程,然后帆软直接调用存储过程就不会报错了

  • 叶知秋丶 叶知秋丶(提问者) 是的,我这看帆软那边技术也没啥招我也就准备这么写,或者物化视图了
    2023-01-04 10:27 
  • snrtuemc snrtuemc 回复 叶知秋丶(提问者) 是的,帆软这边只能写查询语句,以及又返回结果集的存储过程
    2023-01-04 10:29 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-1-4 09:46

没用oracle

个人理解:既然都是只读权限了,那就只有select可用,其它的(set 、update 、delete等)就用不了正常啊。不知道理解得对不对

  • 叶知秋丶 叶知秋丶(提问者) 只用了select语句,因为dblink的权限是默认可以做dml操作的,但实际我只用只读的就够,所以加上set transaction read only就可以用,只是这个在帆软里我直接加进去数据源无法识别
    2023-01-04 10:00 
  • 1关注人数
  • 292浏览人数
  • 最后回答于:2023-1-4 10:04
    请选择关闭问题的原因
    确定 取消
    返回顶部