如果您有三台服务器[[1],[2],[3]]通过数据库链接([1] - > [2],[2] - > [3])按顺序链接,是否有可能“菊花链”查询,以便登录[1]的用户可以读取(或更糟糕地删除)[3]中的表?有点像...
SELECT * FROM DBA_TABLES@2@3;
我是数据库的用户,dba在这些数据库之间建立了公共链接,我正在努力弄清楚这有多糟糕。我已经知道我已经提升了2的特权,但我担心[2]到[3]的链接可以被进一步利用。
感谢您的投入。
答案 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的链接。