Oracle DBMS(11g)と次の構成があります。
質問:「MYUSER」としてログオンした場合、「SCHEMA_B」のDBリンクを使用してテーブルにアクセスするための正しい構文は何ですか?それはまったく可能ですか?
私はすでにいくつかの星座を試しましたが、すべてはうまくいきませんでした:
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-「リモートデータベースの接続の説明が見つかりません」
提案をありがとう!
すべてではなく複数のユーザー間でデータベースリンクを共有することは不可能だと思います。プライベート(1人のユーザーのみ)またはパブリック(すべてのユーザー)のいずれかです。
これを回避する良い方法は、データベースリンクを介してアクセスするテーブルを公開するビューをSCHEMA_Bに作成することです。これにより、ビューへのアクセスを制御できるため、データベースリンクから選択できるユーザーを適切に制御できます。
次のようにします:
create database link db_link... as before;
create view mytable_view as select * from mytable@db_link;
grant select on mytable_view to myuser;