暂无图片
拥有DBA权限的用户创建其他用户的视图(语句带private db_link)时,提示:ora-02019
我来答
分享
厚厚
2021-06-22
拥有DBA权限的用户创建其他用户的视图(语句带private db_link)时,提示:ora-02019
暂无图片 5M

1、数据库A,有用户 X 和用户 Y(DBA权限)

2、数据库B,有用户 Z

3、在数据库A上,用户X创建了一个DB_LINK链接到了数据库B(通过用户Z)
测试后,用户X可以正常查询用户Z上的表
create database link conn_b_z
connect to z identified by password
using ‘tnsname_b’;

4、使用用户Y(拥有DBA权限)登录数据库A,执行如下语句:

语句1:
create or replace view x.v_t1
as
select tt1.object_id
from t1@conn_b_z tt1;
执行成功:

语句2:
create or replace view x.v_t2
as
select tt1.object_id
from t1@conn_b_z tt1
left join t2@conn_b_z tt2
on tt1.object_id=tt2.object_id;
执行成功:

语句3:
create or replace view x.v_t3
as
select tt1.object_id
from t1@conn_b_z tt1
left join t2@conn_b_z tt2
on tt1.object_id=tt2.object_id
left join t3@conn_b_z tt3
on tt1.object_id=tt3.object_id;
执行失败:提示:ora-02019

5、使用用户X登录数据库A,执行以上语句,均执行成功。

6、当将 db_link 创建为 public db_link时,
用户X 和 用户Y 执行以上语句均成功。

疑问:
请问一下,为什么在创建有2个left join 及以上的语句视图时,会报 ora-02019 错误????
有什么文档可以参考吗?
谢谢!

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
流星

应该是bug吧,ora-2019 “connection description for remote database not found”,说没有找到远程数据库的连接描述,报出这样的错显然不合理,你的是什么版本的数据库

暂无图片 评论
暂无图片 有用 0
打赏 0
厚厚

不知道是不是BUG,但前面2个语句,只有1个 或没有 left join 时,就没有问题(不知道还有没有其他情况,至少2个left join及以上报错是目前碰到的)。查了 MOS 没查到类似的信息。 数据库版本是 12.1 的,操作系统 AIX 7.1

暂无图片 评论
暂无图片 有用 0
打赏 0
lscomeon

这是期望的行为不是BUG。
只有public database link 才能被其他用户查询。

暂无图片 评论
暂无图片 有用 0
打赏 0
厚厚

@lscomeon 这个应该也不是预期行为,如果说 private database link 不能被其他用户查询,那测试中的 语句1 和 语句2 又如果解释呢???

或者 语句3,这是特殊情况下的预期行为。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
请问awr里Executions执行为0,怎么查看原因
回答 1
已采纳
通常是开始执行了,但是没有执行完。可以通过v$sqlmonitor、DBAHISTREPORTS、DBAHISTREPORTSDETAILS查看。如果没达到sqlmonitor阈值,可以通过v$act
ORACLE中between and是包含两边边界的吗?
回答 2
已采纳
IDbetweenAandB类似于A<ID<B
大家都分析一下,一条简单的update语句,在postgresql, oracle 服务器执行的过程;
回答 2
已采纳
这个问题有点大,关于执行的那一部分可以参考pg官网文档。解析>重写>优化>执行其中在执行器中selectupdatedeleteinsert略有区别 http://www.
怎么看oracle的触发器的运行日志
回答 1
系统没有记录这个日志,需要自己在触发器中用代码记录日志,抛出日志或者insert到表中都可以。
AWR分析报告问题求助:压测的时候业务反馈insert 慢。通过awr发现很多gc buffer busy acquire等待,求解决办法
回答 1
已采纳
减少gc访问,如业务分离logfilesync优化,如优化存储性能dsmiss较高优化sequencecacheSGA调大一点,12G,还没有我笔记本配置大呢
用户忘记Oracle 数据库密码,现在用alter修改密码时,一直执行中,修改不了,怎么解决?
回答 1
将连接该用户的会话杀死,然后再重置密码试试
Oracle临时表空间如何查询,有什么用途
回答 5
已采纳
临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sortareasize大小不够时,将会把数据放入临时表空间里进行排序
小白求问,oracle的数据表中的数据是UTF-8的,然后想导出的时候的数据是GBK 的数据,需要怎样操作?
回答 1
你要是数据里面有gbk不包含的字符怎么办,数据不要了?
京东云上安装的Oracle数据库,官方提供技术支持吗?
回答 1
已采纳
首先问一下要是京东云的问题他们肯定会支持,如果要是数据库的问题,他们估计不会支持吧。如果你们买了Oracle的服务,那就可以找原厂支持。
expdp ORA-00600: 内部错误代码, 参数: [kcfrbd_3]
回答 1
SQL>ALTERDATABASEDATAFILE'D:\ORADATA\TBSDATA02.DBF'RESIZE1073750016;ALTERDATABASEDATAFILE'D:\ORAD
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~