gpt4 book ai didi

database - 如何使用位于不同模式中的 DBLINK 在 Oracle 中进行选择?

转载 作者:太空狗 更新时间:2023-10-30 01:42:49 24 4
gpt4 key购买 nike

我们有一个 Oracle DBMS (11g) 和以下配置:

  • 数据库用户“MYUSER”
  • 两个模式“MYUSER”和“SCHEMA_B”
  • 用户“MYUSER”可以访问“SCHEMA_B”并对其表具有读取权限
  • 位于“SCHEMA_B”中的公共(public)数据库链接“DB_LINK”
  • DB_LINK 在直接使用数据库用户“SCHEMA_B”时有效

问题:当以“MYUSER”身份登录时,使用“SCHEMA_B”的数据库链接访问表的正确语法是什么?有可能这样做吗?

我已经尝试了几个星座,都没有用:

select * from dual@"DB_LINK"
select * from dual@"SCHEMA_B"."DB_LINK"
select * from dual@SCHEMA_B."DB_LINK"
select * from dual@SCHEMA_B.DB_LINK
select * from SCHEMA_B.dual@DB_LINK
select * from "SCHEMA_B".dual@DB_LINK

我收到的错误信息是:ORA-02019。 00000 - “未找到远程数据库的连接描述”

感谢任何建议!

最佳答案

我认为不可能在多个用户(但不是所有用户)之间共享数据库链接。它们要么是私有(private)的(仅针对一个用户),要么是公共(public)的(对于所有用户)。

解决此问题的一个好方法是在 SCHEMA_B 中创建一个 View ,该 View 公开您要通过数据库链接访问的表。这也将使您能够很好地控制允许谁从数据库链接中进行选择,因为您可以控制对 View 的访问。

这样做:

create database link db_link... as before;
create view mytable_view as select * from mytable@db_link;
grant select on mytable_view to myuser;

关于database - 如何使用位于不同模式中的 DBLINK 在 Oracle 中进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12624291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com