در زمان استفاده از Active Data Gaurd، ممکن است نیاز باشد تا نظارتی بر روی دسترسی کاربران به جداول صورت پذیرد. با توجه به read only بودن ADG، طبیعی است که امکان استفاده از $aud برای ثبت auditing امکان پذیر نخواهد بود و تنظیم پارامتر audit_trail به مقدار DB نمی تواند در این محیط موثر باشد.
برای انجام auditing در محیط ADG، می توان پارامتر audit_trail را برابر با یکی از مقادیر XML و یا OS قرار داد تا auditing در قالب فایل و در لایه سیستم عامل ذخیره شود البته مقدار این پارامتر در محیط بانک اصلی، در این زمینه موثر نخواهد بود:
–in ADG
SQL> alter system set audit_trail=XML,extended scope=spfile;
System altered.
با اجرای این دستور، مقدار پارامتر audit_file_dest، مسیر فایلهای xmlای را مشخص خواهد کرد.
SQL> show parameter audit_file_dest
NAME TYPE VALUE
———————————— ———– ——————————
audit_file_dest string /u03/oracle/11g/admin/hrm/adump
قصد داریم هرگونه اجرای دستور select بر روی جدول person که حاوی اطلاعات مالی می باشد، را در محیط دیتاگارد مانیتور کنیم. به این جهت، باید ابتدا با اجرای دستور زیر در محیط بانک اصلی، auditing را بر روی این جدول فعال کنیم:
–in prim
SQL> audit select on hr.person;
Audit succeeded.
با اجرای دستور audit، اگر کاربری چون usef اطلاعات جدول person را مشاهده کند، auditing در قالب فایل xmlای و در سطح سیستم عامل ذخیره خواهد شد:
SQL> conn usef/zxc
Connected.
SQL> select sal from hr.person where id=1;
SAL
———-
12
فایل xmlای را می توان در مسیری که برای پارامتر audit_file_dest تنظیم شده است، مشاهده نمود:
[oracle@myhost adump]$ ls -lh
-rw-r—– 1 oracle oinstall 964 Jan 21 09:49 hrmstb_ora_14299_20190121094924981805858377.xml
همچنین برای دسترسی به لاگ مربوط به Auditing در سطح بانک(ADG)، می توان به ویوی v$xml_audit_trail رجوع کرد:
SQL> select p.SESSION_ID,p.DB_USER,p.OS_HOST,p.TERMINAL,p.SQL_TEXT from v$xml_audit_trail p;