I'm Top Oracle DBA

Auditing Oracle Database Activity

สรุปง่ายๆ ในรูปแบบความเข้าใจ เป็นภาษาไทย

Auditing คือ การเก็บ รายละเอียดการเข้าใช้งาน ใน Database เก็บ เป็น record ลงใน table ที่มี ชื่อ ว่า SYS.AUD$ ซึ่งประเภทของรายละเอียดที่เก็บ มีหลากหลาย ประเภท เช่น SQL Statement, privileges, schemas, object, network ทั้งนี้ทั้งนั้น การทำ audit ให้กับฐานข้อมูลเป็นสิ่งจำเป็น ที่สุดเพื่อ ที่ Database ควรจะทำ (Database Security) เพื่อเอาไว้ วิเคราะห์ปัญหาที่เกิดขึ้น, สามารถระงับการเข้าใช้งาน กับบุคคลที่ไม่ต้องการให้เข้าใช้งาน, กำหนด สิทธิ์การเข้าถึง object ให้กับ user ได้, กำหนด พฤติกรรมการใช้งานได้

เพื่อความ ปลอดภัย ของข้อมูล เราต้อง enable audit เสียก่อน จึงสามารถสามารถเก็บ รายละเอียดการเข้าใช้งานได้ ซึ่งวิธีการ enable เรา จะcheck จาก parameter ที่มีชื่อว่า audit_trail เมื่อเปิด audit แล้ว รายละเอียดจะเก็บ อยู่ใน table SYS.AUD$ และ view ที่เก็บ รายละเอียด ตามหัวข้อ view audit trail ด้านล่าง


Auditing is the recording of selected user database actions and monitoring. In standard auditing, you use initialization parameters. You can auditing as below

  • audit SQL statements
  • privileges
  • schemas
  • objects
  • network
  • multitier activity.

Why Is Auditing Used?

  • Enable for counting current actions.
  • Protect outsiders or strangers (Deter users)
  • Investigate suspicious activity.
  • Notify an auditor of actions by an unauthorized user.
  • Monitor and gather data about specific database activities.
  • Detect problems with authorization or access control implementation.
  • Address auditing requirements for compliance.

Where to records

  • The audit records will provide information on who performed what database operation
    and when it was performed. Records are written to an SYS-owned table named AUD$.
    The SYS.AUD$ (dba_audit_trail) and dba_fga_audit_trail) are commonly referred to as the audit trail.
  • It is advisable to copy the AUD$ table into a separate tablespace from other SYS-owned objects.
    In some cases, the AUD$ table should be owned by a user other than SYS.

View Audit Trail

The audit trail is stored in the SYS.AUD$ table. Its contents can be viewed directly or via the following views.

DBA_AUDIT_EXISTS
DBA_AUDIT_OBJECT
DBA_AUDIT_SESSION
DBA_AUDIT_STATEMENT
DBA_AUDIT_TRAIL
DBA_OBJ_AUDIT_OPTS
DBA_PRIV_AUDIT_OPTS
DBA_STMT_AUDIT_OPTS


Auditing General Activities Using Standard Auditing

You can click on the link for how to do each type

Schema object auditing can audit all SELECT and DML statements permitted by schema object privileges, such as SELECT or DELETE statements on a particular table. The GRANT and REVOKE statements that control those privileges are also audited.

  • Auditing Network Activity
  • Using Proxies to Audit SQL Statements and Privileges in a Multitier Environment

Maintenance

The audit trail must be deleted/archived on the SYS.AUD$ table.


Enabling or Disabling the Standard Audit Trail

You have to set the initialization parameter or spfile “audit_trail = xx”

In the Value field, select one of the following values:

  • DB: Enables database auditing and directs all audit records to the database audit trail (SYS.AUD$)
  • OS: Enables database auditing and directs all audit records to an operating system file.

To specify the location of the operating system audit record file, set the AUDIT_FILE_DEST initialization parameter.

  • NONE: Disables standard auditing.
  • DB, EXTENDED: Performs all actions of the AUDIT_TRAIL=DB setting and also populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$ table, when available. (These two columns are populated only when this parameter is specified.)
  • XML: Writes to the operating system audit record file in XML format. Prints all elements of the AuditRecord node except Sql_Text and Sql_Bind to the operating system XML audit file.
  • EXTENDED: Specifies XML, EXTENDED, which performs all actions of XML and also populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$ table, wherever possible. (These columns are populated only when this parameter is specified.)
Note the following:

  • You do not need to restart the database if you change the auditing of objects. You only need to restart the database if you made a universal change, such as turning on or off all auditing.
  • You do not need to set AUDIT_TRAIL to enable either fine-grained auditing or SYS auditing. (SYS auditing enables you to monitor the activities of a system administrator. See Oracle Database Security Guide for more information.) For fine-grained auditing, you add and remove fine-grained auditing policies as necessary, applying them to the specific operations or objects you want to monitor. You can use the AUDIT_SYS_OPERATIONS parameter to enable and disable SYS auditing.

ขอบคุณเนื้อหาที่ทำให้เข้าใจได้ง่ายขึ้น docs.oracle.com and oracle-base.com


***หากมีข้อเพิ่มเติม หรือผิดพลาด จุดไหน รบกวนแนะนำด้วยคะ ขอบคุณค่ะ***

***การใช้ ภาษาไทยคำ อังกฤษคำ ในบางข้อ จะสามารถทำให้ เข้าใจได้ง่ายขึ้น***

error: Content is protected !!