วันพฤหัสบดีที่ 30 เมษายน พ.ศ. 2552

ต้องการตรวจสอบการทำงานของ sys บน oracle

เมื่อผู้ดูแล oracle database ต้องการที่จะการตรวจสอบ(audit)การทำงานของผู้ใช้ 
ผู้ดูแลสามารถใช้ audit_trail พารามิเตอร์ เพื่อเริ่มต้นการตรวจสอบผู้ใช้งานได้
แต่อย่างไรก็ตาม การใช้ audit_trail ไม่สามารถที่จะตรวจสอบการทำงานของ sys

ดังนั้นเราต้องใช้ AUDIT_SYS_OPERATIONS เท่ากับ true เข้ามาช่วย 
เพื่อตรวจสอบการทำงานของ sys หรือผู้ใช้ที่ติดต่อดาต้าเบสด้วย sysdba หรือ sysoper

ตัวอย่าง:
SQL> show parameter audit_sys_operations
NAME                                 TYPE        VALUE
-----------------------------------------------------------------
audit_sys_operations      boolean     FALSE
SQL> alter system set audit_sys_operations=true scope=spfile;
SQL> shutdown
SQL> startup
SQL> show parameter audit_sys_operations
NAME                                 TYPE        VALUE
-----------------------------------------------------------------
audit_sys_operations      boolean     TRUE

ข้อมูลในการตรวจสอบจะถูกเขียนลง OS ในโฟลเดอร์ audit_file_dest 

SQL> show parameter audit_file_dest
NAME                                 TYPE        VALUE
------------------------------------------------------------------
audit_file_dest       string      $ORACLE_BASE/admin/$ORACLE_SID/adump  
 ตัวอย่างการเช็ค audit ไฟล์:
SQL> show parameter audit_file_dest
NAME                                 TYPE        VALUE
------------------------------------------------------------------
audit_file_dest       string      $ORACLE_BASE/admin/$ORACLE_SID/adump                                         
$ sqlplus / as sysdba
SQL> SELECT p.spid FROM   v$process p,   v$session s WHERE  p.addr = s.paddr and s.sid = (SELECT SYS_CONTEXT ('USERENV', 'SID') from dual);
SPID
------------
25561

SQL> select 'test' from dual;

'TES
----
test

$ cat $ORACLE_BASE/admin/$ORACLE_SID/adump/ora_25561.aud

Audit file $ORACLE_BASE/admin/$ORACLE_SID/adump/ora_25561.aud
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
.
.
.
Wed Mar 28 15:47:28 2007
ACTION : 'CONNECT'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: 
STATUS: 0
.
.
.
Fri May  1 02:22:33 2009
LENGTH : '154'
ACTION :[23] 'select 'test' from dual'
DATABASE USER:[1] '/'
PRIVILEGE :[6] 'SYSDBA'
CLIENT USER:[6] 'oracle'
CLIENT TERMINAL:[5] 'pts/9'
STATUS:[1] '0'
จากตัวอย่างข้างบน จะแสดงข้อมูลการใช้งานของ session ที่ติดต่อดาต้าเบส ด้วย sysdba

หากต้องการให้ฟอร์แมทใน audit ไฟล์ เป็น XML เราต้องเซตค่า AUDIT_TRAIL เป็น XML

เมื่อเราเริ่มต้นการตรวจสอบผู้ใช้งาน สิ่งที่สำคัญอย่างหนึ่งที่ขาดไม่ได้ ก็คือ การเข้าไปตรวจสอบข้อมูล อย่างต่อเนื่อง 


ไม่มีความคิดเห็น: