Giảm Kích Thước Audit Trail Unified trong Oracle 23ai
Giới thiệu
Tính năng Unified Auditing trong cơ sở dữ liệu Oracle là một cơ chế mạnh mẽ để ghi lại hoạt động của cơ sở dữ liệu một cách tập trung và nhất quán. Tuy nhiên, điều này có thể gây ra một số thách thức cho các DBA, đặc biệt là khi quản lý kích thước của audit trail. Một trong những mối quan tâm phổ biến là cung cấp đủ dung lượng lưu trữ cho bảng AUD$UNIFIED. Trong một số môi trường, các DBA có thể muốn giảm lượng dữ liệu được lưu trữ trong audit trail bằng cách loại trừ các cột cụ thể khỏi các bản ghi audit.
Oracle Database 23ai (23.7) giới thiệu một tham số khởi tạo mới để giải quyết nhu cầu này: UNIFIED_AUDIT_TRAIL_EXCLUDE_COLUMNS. Tham số này cho phép các DBA loại trừ các cột cụ thể không được ghi vào audit trail thống nhất, từ đó giảm cả mức tiêu thụ lưu trữ và chi phí ghi lại các chi tiết không cần thiết.
Cấu hình Tham số
Kiểm tra giá trị hiện tại
Để kiểm tra giá trị hiện tại của tham số này, bạn có thể sử dụng câu lệnh sau:
SQL> SHOW PARAMETER unified_audit_trail_exclude_columns;
Kết quả sẽ cho bạn biết giá trị hiện tại:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
unified_audit_trail_exclude_columns string NONE
Theo mặc định, giá trị là NONE, có nghĩa là không có cột nào bị loại trừ khỏi audit trail. Nếu bạn cố gắng thiết lập tham số này với một giá trị không hợp lệ, Oracle sẽ báo lỗi:
SQL> ALTER SYSTEM SET unified_audit_trail_exclude_columns=test;
ORA-00096: invalid value TEST for parameter
unified_audit_trail_exclude_columns, must be from among
none, dp_clob_parameters1, rls_info, sql_binds, sql_text
Các giá trị hợp lệ
Các giá trị hợp lệ cho tham số này bao gồm:
- NONE — Không có cột nào bị loại trừ.
- SQL_TEXT — Loại trừ văn bản câu lệnh SQL khỏi audit trail.
- SQL_BINDS — Loại trừ giá trị của các biến ràng buộc.
- DP_CLOB_PARAMETERS1 — Loại trừ các tham số Data Pump từ cột DP_CLOB_PARAMETERS1.
- RLS_INFO — Loại trừ thông tin ngữ cảnh bảo mật theo hàng (RLS/VPD/FGAC).
Thực hành tốt nhất
Loại trừ SQL_TEXT
Đầu tiên, tạo và kích hoạt một chính sách audit đơn giản:
SQL> CREATE AUDIT POLICY pol_select_tb ACTIONS SELECT ON vahid.tb;
Audit policy created.
SQL> AUDIT POLICY pol_select_tb;
Audit succeeded.
Chạy một truy vấn thử nghiệm và xem audit trail với SQL_TEXT được bao gồm:
SQL> SHOW PARAMETER unified_audit_trail_exclude_columns;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
unified_audit_trail_exclude_columns string NONE;
SQL> VARIABLE v_id NUMBER;
SQL> EXEC :v_id := 1;
SQL> SELECT * FROM vahid.tb WHERE id=:v_id;
ID FIRST_NAME LAST_NAME
---------- ---------- -----------
1 Vahid Yousefzadeh
Bây giờ, loại trừ SQL_TEXT và làm sạch audit trail:
SQL> ALTER SYSTEM SET unified_audit_trail_exclude_columns=sql_text;
System altered.
SQL> EXEC dbms_audit_mgmt.clean_audit_trail(
audit_trail_type=>dbms_audit_mgmt.audit_trail_unified,
use_last_arch_timestamp=>false);
PL/SQL procedure successfully completed.
SQL> select * from vahid.tb where id=:V_ID;
ID FIRST_NAME LAST_NAME
---------- ---------- -----------
1 Vahid Yousefzadeh
Kiểm tra lại audit trail:
SQL> select dbusername,action_name ,object_name,to_char(sql_binds) sql_binds ,to_char(sql_text) sql_text from unified_audit_trail x where unified_audit_policies='POL_SELECT_TB';
DBUSERNAME ACTION_NAM OBJECT_NAME SQL_BINDS SQL_TEXT
---------- ---------- ----------- ---------- --------------------------------------------
VAHID SELECT TB #1(1):1
Như mong đợi, cột SQL_TEXT giờ đây trống.
Loại trừ SQL_BINDS
Tiếp theo, bạn có thể loại trừ các giá trị của biến ràng buộc:
SQL> ALTER SYSTEM SET unified_audit_trail_exclude_columns=sql_binds;
System altered.
SQL> select * from vahid.tb where id=:V_ID;
ID FIRST_NAME LAST_NAME
---------- ---------- -----------
1 Vahid Yousefzadeh
SQL> select dbusername,action_name ,object_name,to_char(sql_binds) sql_binds ,to_char(sql_text) sql_text from unified_audit_trail x where unified_audit_policies='POL_SELECT_TB';
DBUSERNAME ACTION_NAM OBJECT_NAME SQL_BINDS SQL_TEXT
---------- ---------- ----------- ---------- --------------------------------------
VAHID SELECT TB select * from vahid.tb where id=:V_ID
Như bạn thấy, các giá trị biến ràng buộc đã bị loại trừ, nhưng SQL_TEXT thì vẫn có sẵn.
Loại trừ DP_CLOB_PARAMETERS1 cho Data Pump
Bạn cũng có thể loại trừ cột DP_CLOB_PARAMETERS1 khi làm việc với Data Pump:
SQL> create audit policy comp_policy ACTIONS COMPONENT=datapump export;
Audit policy created.
SQL> audit policy comp_policy;
Audit succeeded.
SQL> ALTER SYSTEM SET unified_audit_trail_exclude_columns=none;
System altered.
$ expdp directory=q dumpfile=test.dmp tables=vahid.tb
Kiểm tra audit trail với DP_CLOB_PARAMETERS1 được bao gồm:
SQL> SELECT action_name,
TO_CHAR(dp_clob_parameters1) dp_clob_parameters1
FROM unified_audit_trail
WHERE unified_audit_policies='COMP_POLICY';
ACTION_NAM DP_CLOB_PARAMETERS1
---------- ------------------------------------------------------
EXPORT {"parameter":"CLIENT_COMMAND","value":"vahid/********@...}
Bây giờ, loại trừ cột và lặp lại xuất:
SQL> ALTER SYSTEM SET unified_audit_trail_exclude_columns=dp_clob_parameters1;
System altered.
$ expdp directory=q dumpfile=test.dmp tables=vahid.tb
SQL> SELECT action_name,
TO_CHAR(dp_clob_parameters1) dp_clob_parameters1
FROM unified_audit_trail
WHERE unified_audit_policies='COMP_POLICY';
ACTION_NAM DP_CLOB_PARAMETERS1
---------- -------------------------
EXPORT
Cột DP_CLOB_PARAMETERS1 giờ đây trống.
Loại trừ RLS_INFO
Đối với các môi trường sử dụng RLS (Row-Level Security), VPD (Virtual Private Database), hoặc FGAC (Fine-Grained Access Control), bạn cũng có thể loại trừ cột RLS_INFO (loại CLOB) khỏi audit trail:
SQL> ALTER SYSTEM SET unified_audit_trail_exclude_columns=rls_info;
System altered.
Khi được kích hoạt, cột RLS_INFO sẽ giữ giá trị NULL trong các bản ghi audit.
Những cạm bẫy phổ biến
- Thiết lập giá trị không hợp lệ: Đảm bảo rằng bạn chỉ sử dụng các giá trị hợp lệ cho tham số này, nếu không Oracle sẽ báo lỗi.
- Quản lý dung lượng lưu trữ: Theo dõi thường xuyên để đảm bảo rằng dung lượng lưu trữ vẫn đủ với các thay đổi trong audit trail.
Mẹo hiệu suất
- Lập kế hoạch trước: Trước khi thiết lập các tham số, hãy xem xét các yêu cầu lưu trữ và chính sách audit của tổ chức.
- Thực hiện kiểm tra định kỳ: Định kỳ xem lại các giá trị của các tham số để đảm bảo rằng chúng vẫn phù hợp với nhu cầu.
Kết luận
Việc giảm kích thước audit trail trong Oracle 23ai là một công cụ hữu ích cho các DBA nhằm tối ưu hóa lưu trữ và hiệu suất. Bằng cách sử dụng tham số UNIFIED_AUDIT_TRAIL_EXCLUDE_COLUMNS, bạn có thể linh hoạt trong việc chọn lọc thông tin nào cần lưu trữ. Hãy thử nghiệm và triển khai các thực hành tốt nhất để quản lý audit trail hiệu quả hơn.
Nếu bạn cần thêm thông tin hoặc hỗ trợ, đừng ngần ngại liên hệ với chúng tôi!
Câu hỏi thường gặp (FAQ)
Tham số này có ảnh hưởng đến tất cả các bản ghi audit không?
Không, tham số này chỉ ảnh hưởng đến các bản ghi audit được tạo ra sau khi tham số được thiết lập.
Có thể thay đổi giá trị của tham số này mà không cần khởi động lại Oracle không?
Có, bạn có thể thay đổi giá trị này mà không cần khởi động lại Oracle.