2016-06-30 6 views
0

データベースリンク([1] - > [2]、[2] - > [3])を順番にリンクしている3つのサーバー[[1]、[2]、[3] [1]にログインしたユーザが[3]のテーブルを読み込む(または悪化させる)ようにクエリをデイジーチェーンすることは可能ですか?何かのように...DBLinkのデイジーチェーン?

SELECT * FROM [email protected]@3; 

私はdbaがこれらのデータベース間のパブリックリンクを設定したデータベースのユーザーです。この問題の程度を正確に把握しようとしています。私はすでに2つの権限を昇格していることを知っていますが、[2]から[3]へのリンクがさらに悪用される懸念があります。

ありがとうございます。

+1

「@ 2 @ 3」のようなことはできません。その参照オブジェクトを3で参照してシノニム/ビュー/等を作成し、データベースリンクを介してそれらを2に操作することができます。データベースリンク上でDDLを実行するのは少し難しいですが(2のユーザが適切特権)。 –

+1

はい、同義語を使用できます。参照してくださいhttp://stackoverflow.com/questions/2989926/can-i-chain-database-links-in-oracle – topshot

答えて

0

db [1]から、db [3]を参照する動的SQL文を実行できるdb [2]でDBMS_SQLパッケージを呼び出すことができます。

declare 
v_cursor NUMBER; 
v_ind  number; 
begin 
v_cursor := [email protected]; 
[email protected](v_cursor, 'delete from [email protected]', dbms_sql.native); 
v_ind := [email protected](v_cursor); 
end; 
/

そうしないと、db3へのリンクをマスクするオブジェクトがdb2内に存在する必要があります。

+0

さて、これはかなり私の悪夢を確認します。 :|ありがとう! – Fjallraven

関連する問題