Để cấu hình và quản trị Standard Auditing trong Oracle Database, bạn cần thực hiện các bước sau:
1. Kích hoạt Auditing:
- Trước tiên, bạn cần kích hoạt auditing bằng cách cấu hình tham số audit_trail trong file cấu hình init.ora hoặc spfile.
Ví dụ, để kích hoạt auditing và lưu trữ bản ghi audit trong bảng SYS.AUD$:
ALTER SYSTEM SET audit_trail='DB' SCOPE=SPFILE;
- Sau đó, khởi động lại cơ sở dữ liệu để áp dụng các thay đổi:
SHUTDOWN IMMEDIATE;
STARTUP;
2. Cấu hình Auditing:
Ví dụ, để audit các lệnh SELECT trên bảng employees:
AUDIT SELECT ON hr.employees BY ACCESS;
## từ khoá BY ACCESS nếu không được khai báo sẽ được hiểu là mặc định có, ngoài ra còn có BY SESSION
Hoặc để audit tất cả các lệnh INSERT, UPDATE, DELETE trên bảng employees:
AUDIT INSERT, UPDATE, DELETE ON hr.employees BY ACCESS;
Audit cho role:
AUDIT ROLE_name; AUDIT connect; ## audit role connect. NOAUDIT ROLE_name;
Audit với tuỳ chọn successful: nghĩa là role này khi thực hiện thành công mới log (có thể thay bằng UNSUCCESSFUL)
AUDIT ROLE_name WHENEVER SUCCESSFUL; NOAUDIT ROLE_name WHENEVER SUCCESSFUL;
Audit tất cả: bật tắt (sẽ tiến hành audit toàn bộ các hoạt động trên user DUONG bao gồm truncate table và không gồm insert, delete, update => cái này phải khai báo riêng…)
## audit toàn bộ phiên làm việc của người dùng Duong, log lại mỗi khi có session đăng nhập hoặc đăng xuất
AUDIT SESSION BY DUONG BY ACCESS;
## audit toàn bộ hoạt động của duong (trừ các lệnh DML)
AUDIT ALL BY DUONG BY ACCESS;
## tắt toàn bộ audit cho Duong
NOAUDIT SESSION BY DUONG; NOAUDIT ALL BY DUONG;
## Bật audit cho tất cả DB mà không chỉ rõ ra user nào:
AUDIT SESSION AUDIT ALL
## audit connect và disconnect
AUDIT CONNECT; AUDIT DISCONNECT;
3. Xem và Quản lý các Bản ghi Audit:
- Các bản ghi audit sẽ được lưu trữ trong bảng SYS.AUD$. Bạn có thể truy vấn bảng này để xem các bản ghi audit hoặc sử dụng các view cung cấp thông tin về audit như DBA_AUDIT_TRAIL, DBA_AUDIT_SESSION…
Tất cả các VIEW liên quan tới AUDIT:
SELECT view_name FROM dba_views WHERE view_name LIKE 'DBA%AUDIT%' ORDER BY view_name;
###
DBA_AUDIT_EXISTS
DBA_AUDIT_MGMT_CLEANUP_JOBS
DBA_AUDIT_MGMT_CLEAN_EVENTS
DBA_AUDIT_MGMT_CONFIG_PARAMS
DBA_AUDIT_MGMT_LAST_ARCH_TS
DBA_AUDIT_OBJECT
DBA_AUDIT_POLICIES
DBA_AUDIT_POLICY_COLUMNS
DBA_AUDIT_SESSION
DBA_AUDIT_STATEMENT
DBA_AUDIT_TRAIL
DBA_COMMON_AUDIT_TRAIL
DBA_DV_PATCH_ADMIN_AUDIT
DBA_FGA_AUDIT_TRAIL
DBA_OBJ_AUDIT_OPTS
DBA_OLS_AUDIT_OPTIONS
DBA_PRIV_AUDIT_OPTS
DBA_SA_AUDIT_OPTIONS
DBA_STMT_AUDIT_OPTS
DBA_XS_AUDIT_POLICY_OPTIONS
DBA_XS_AUDIT_TRAIL
DBA_XS_ENABLED_AUDIT_POLICIES
Ví dụ, để xem tất cả các bản ghi audit:
SELECT * FROM SYS.AUD$; select * from dba_audit_trail;
Kiểm tra tính năng, loại audit xem đã kích hoạt hay chưa:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE USER_NAME = 'DUONG'; SELECT * FROM DBA_SA_AUDIT_OPTIONS WHERE USER_NAME = 'DUONG'; SELECT * FROM DBA_PRIV_AUDIT_OPTS WHERE USER_NAME = 'DUONG';
Kiểm tra dung lượng tabe audit: — kiem tra dung luong cua table audit log
SELECT segment_name, bytes/1024/1024 as MB FROM dba_segments WHERE segment_name = 'AUD$';
4. Tắt Auditing (tùy chọn):
- Nếu bạn muốn tắt auditing cho một hoạt động cụ thể hoặc tất cả các hoạt động, bạn có thể sử dụng lệnh NOAUDIT.
Ví dụ, để tắt auditing SELECT trên bảng employees:
NOAUDIT SELECT ON hr.employees;
Hoặc để tắt tất cả các loại audit:
NOAUDIT ALL by user_name;