菊花链DBLinks?

时间:2016-06-30 16:58:54

标签: oracle plsql

如果您有三台服务器[[1],[2],[3]]通过数据库链接([1] - > [2],[2] - > [3])按顺序链接,是否有可能“菊花链”查询,以便登录[1]的用户可以读取(或更糟糕地删除)[3]中的表?有点像...

SELECT * FROM DBA_TABLES@2@3;

我是数据库的用户,dba在这些数据库之间建立了公共链接,我正在努力弄清楚这有多糟糕。我已经知道我已经提升了2的特权,但我担心[2]到[3]的链接可以被进一步利用。

感谢您的投入。

1 个答案:

答案 0 :(得分:0)

从db [1]你可以调用db [2]上的DBMS_SQL包,它可以运行一个引用db [3]的动态SQL语句。

declare
 v_cursor  NUMBER;
 v_ind      number;
begin
 v_cursor := dbms_sql.open_cursor@db2;
 dbms_sql.parse@db2(v_cursor, 'delete from tbl@db3', dbms_sql.native);
 v_ind := dbms_sql.execute@db2( v_cursor );
end;
/

否则,您需要db2中的对象掩盖到db3的链接。