RAC 攻击 - Oracle 集群数据库在家/文件测试
外观
我们的第二个 PL/SQL 测试将查看 UTL_FILE 包。对于 RAC 上的任何 PL/SQL 操作,您必须意识到代码可能会在任何其服务所在的节点上执行。这也可能影响像 DBMS_PIPE、UTL_MAIL、UTL_HTTP(例如代理服务器源 IP 规则)甚至 DBMS_RLS(刷新策略)这样的包。
- 登录到RAC1 作为sh 并创建一个稍后可以尝试读取的文件。collabn1:/home/oracle[RAC1]$ sqlplus sh/sh@RAC1 create directory orahome as '/home/oracle'; declare fl utl_file.file_type; begin fl := utl_file.fopen('ORAHOME','data.txt','w'); utl_file.put_line(fl, 'Some sample data for an oracle test.', TRUE); utl_file.fclose(fl); end; /
- 退出 SQLPLUS。在提示符下,复制此命令以再次以sh身份连接到RAC服务并尝试读取您刚写入的文件。连续运行此命令 10-20 次。(建议使用剪切和粘贴。)发生什么情况?为什么?sqlplus -S sh/sh@RAC <<EOF declare fl utl_file.file_type; data varchar2(1024); begin fl := utl_file.fopen('ORAHOME','data.txt','r'); utl_file.get_line(fl, data); utl_file.fclose(fl); end; / exit; EOF