Oracle11g audit審計(jì)配置全過程
一、audit是什么?
Oracle的審計(jì)功能允許數(shù)據(jù)庫管理員跟蹤和記錄對(duì)數(shù)據(jù)庫的操作,以確保數(shù)據(jù)庫的安全性、合規(guī)性和完整性。
Oracle提供了多種審計(jì)功能和方法,可以針對(duì)不同的需求和場(chǎng)景進(jìn)行配置和使用,主要包括:
- 標(biāo)準(zhǔn)審計(jì)(Standard Auditing):用于審計(jì)特定的SQL語句、特權(quán)、對(duì)象和操作。
- 細(xì)粒度審計(jì)(Fine-Grained Auditing, FGA):允許對(duì)表級(jí)別的數(shù)據(jù)訪問進(jìn)行細(xì)粒度控制和審計(jì)。
- 統(tǒng)一審計(jì)(Unified Auditing):Oracle 12c引入的新特性,整合了標(biāo)準(zhǔn)審計(jì)、FGA等多種審計(jì)方式。
二、啟用audit
要啟用數(shù)據(jù)庫審計(jì),需要初始化參數(shù) AUDIT_TRAIL :
| 參數(shù)值 | 含義 |
|---|---|
| none | 默認(rèn)值,不做審計(jì) |
| db | 啟用數(shù)據(jù)庫審計(jì)并將所有審計(jì)記錄指向數(shù)據(jù)庫審計(jì)跟蹤 (SYS.AUD$) 中 |
| db_extended | 完成 AUDIT_TRAIL=DB 的全部操作并填充 SYS.AUD$ 表的 SQL 綁定和 SQL 文本列 |
| xml | 啟用數(shù)據(jù)庫審計(jì)并將所有審計(jì)記錄以 XML 格式指向一個(gè)操作系統(tǒng)文件 |
| os | 啟用數(shù)據(jù)庫審計(jì)并將所有審計(jì)記錄指向一個(gè)操作系統(tǒng)文件 |
此外,還應(yīng)設(shè)置以下數(shù)據(jù)庫參數(shù):
- AUDIT_FILE_DEST :指定操作系統(tǒng)審計(jì)跟蹤位置的動(dòng)態(tài)參數(shù),默認(rèn)位置為 $ORACLE_BASE/admin/$ORACLE_SID/adump。
- AUDIT_SYS_OPERATIONS :啟用對(duì)用戶 SYS 以及使用 SYSDBA、SYSOPER、SYSASM、SYSBACKUP、SYSKM 和 SYSDG 權(quán)限進(jìn)行連接的用戶發(fā)出的操作的審計(jì),該參數(shù)應(yīng)當(dāng)設(shè)為 true。
可以通過以下命令修改參數(shù)
alter system set audit_sys_operations=TRUE scope=spfile; alter system set audit_trail=db_extended scope=spfile;
重啟數(shù)據(jù)庫才能生效
shutdown immediate; startup;
查看是否啟動(dòng)了審計(jì)功能
show parameter audit;
三、配置標(biāo)準(zhǔn)審計(jì)
標(biāo)準(zhǔn)審計(jì)是 Oracle 數(shù)據(jù)庫的基本審計(jì)級(jí)別,可對(duì)數(shù)據(jù)庫對(duì)象(如表、視圖、過程等)的操作進(jìn)行審計(jì)。
審計(jì)記錄包括對(duì) DDL 和 DML 操作的記錄,例如對(duì)表的 SELECT、UPDATE、INSERT 或 DELETE 操作進(jìn)行記錄。
標(biāo)準(zhǔn)審計(jì)可以通過 AUDIT 和 NOAUDIT 命令進(jìn)行配置。
AUDIT語法
AUDIT action [, action, ...] on object_name [by user] [whenever condition];
- action: 指定要審計(jì)的操作,可以是單個(gè)操作(如 SELECT、INSERT、UPDATE、DELETE)或多個(gè)操作的組合。
- object_name: 指定要審計(jì)的對(duì)象,可以是表、視圖、過程等數(shù)據(jù)庫對(duì)象。
- BY user: 可選項(xiàng),指定要審計(jì)的用戶。如果不指定,默認(rèn)為當(dāng)前用戶。
- WHENEVER condition: 可選項(xiàng),指定觸發(fā)審計(jì)的條件,例如成功或失敗。
AUDIT 參數(shù)說明 - action:
單個(gè)操作:SELECT、INSERT、UPDATE、DELETE、ALTER、DROP、CREATE、SYSTEM AUDIT、SESSION AUDIT等。
多個(gè)操作組合:用逗號(hào)分隔,例如 SELECT, INSERT, UPDATE 表示同時(shí)審計(jì)這三種操作。 - object_name:
表示要審計(jì)的對(duì)象,可以是表名、視圖名、過程名等數(shù)據(jù)庫對(duì)象。
也可以使用 ALL 來審計(jì)所有對(duì)象,或者使用通配符 % 來匹配多個(gè)對(duì)象。 - by user:
指定要審計(jì)的用戶,可以是具體用戶名或者 PUBLIC(對(duì)所有用戶生效)。
如果不指定 BY user,默認(rèn)為當(dāng)前用戶。 - whenever condition:
可以用來指定觸發(fā)審計(jì)的條件,常見的條件包括 SUCCESSFUL(成功操作)和 NOT SUCCESSFUL(失敗操作)。
例如,WHENEVER SUCCESSFUL 表示只審計(jì)成功的操作,而 WHENEVER NOT SUCCESSFUL 表示只審計(jì)失敗的操作。
示例:
審計(jì)對(duì)特定表的SELECT操作:
AUDIT SELECT ON employees;
審計(jì)特定用戶對(duì)特定表的SELECT操作:
AUDIT SELECT ON employees BY hr_user;
審計(jì)對(duì)特定表的失敗的SELECT操作:
AUDIT SELECT ON employees WHENEVER NOT SUCCESSFUL;
可以通過以下查詢顯示已啟用的審計(jì)選項(xiàng)和配置,以及審計(jì)的狀態(tài)信息。
SELECT * FROM DBA_PRIV_AUDIT_OPTS; -- 查看特權(quán)操作的審計(jì)配置 SELECT * FROM DBA_STMT_AUDIT_OPTS; -- 查看語句級(jí)操作的審計(jì)配置 SELECT * FROM DBA_OBJ_AUDIT_OPTS; -- 查看對(duì)象級(jí)操作的審計(jì)配置
通過使用 AUDIT 語句,管理員可以靈活地配置審計(jì)策略,跟蹤和記錄數(shù)據(jù)庫中特定操作的執(zhí)行情況,以確保數(shù)據(jù)庫的安全性和合規(guī)性。
四、審計(jì)記錄管理
審計(jì)記錄管理包括查看、存檔和清理審計(jì)記錄。
1.查看審計(jì)記錄
可以通過以下視圖查看審計(jì)記錄:
DBA_AUDIT_TRAIL:查看標(biāo)準(zhǔn)審計(jì)記錄。 DBA_FGA_AUDIT_TRAIL:查看細(xì)粒度審計(jì)記錄。 UNIFIED_AUDIT_TRAIL:查看統(tǒng)一審計(jì)記錄。
2.清理審計(jì)記錄
可以定期清理過期的審計(jì)記錄,以避免占用過多的存儲(chǔ)空間。
例如:
- 刪除30天前的標(biāo)準(zhǔn)審計(jì)記錄:
DELETE FROM SYS.AUD$ WHERE TIMESTAMP# < SYSDATE - 30;
- 刪除30天前的細(xì)粒度審計(jì)記錄:
DELETE FROM DBA_FGA_AUDIT_TRAIL WHERE TIMESTAMP < SYSDATE - 30;
請(qǐng)注意,開啟審計(jì)功能可能會(huì)對(duì)數(shù)據(jù)庫性能產(chǎn)生一定影響,因此應(yīng)根據(jù)實(shí)際需求和安全政策來配置審計(jì)選項(xiàng),并定期維護(hù)審計(jì)記錄以保證數(shù)據(jù)庫的安全性和合規(guī)性。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解析PL/SQL Developer導(dǎo)入導(dǎo)出數(shù)據(jù)庫的方法以及說明
本篇文章是對(duì)PL/SQL Developer導(dǎo)入導(dǎo)出數(shù)據(jù)庫的方法以及說明進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Plsql Developer連接Oracle時(shí)出現(xiàn)Could not initialize oci.dll解決方案
這篇文章主要介紹了Plsql Developer連接Oracle時(shí)出現(xiàn)Could not initialize oci.dll解決方案,需要的朋友可以參考下2017-03-03
Oracle數(shù)據(jù)庫聚合函數(shù)XMLAGG詳解(全網(wǎng)最全)
在SQL中,合函數(shù)用于對(duì)一組值進(jìn)行計(jì)算并返回單一的值,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫聚合函數(shù)XMLAGG的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束詳解
事務(wù)是一個(gè)整體,這些操作要么全部執(zhí)行成功,要么全部不執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫事務(wù)的開啟與結(jié)束的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
ORACLE11g隨RHEL5系統(tǒng)自動(dòng)啟動(dòng)與關(guān)閉的設(shè)置方法
最近,ORACLE系統(tǒng)基本調(diào)試通過,是時(shí)候設(shè)置ORACLE隨RHEL自動(dòng)啟動(dòng)與關(guān)閉服務(wù)的時(shí)候了,之所以把這個(gè)任務(wù)放在最后來做,是因?yàn)槲矣X得這個(gè)應(yīng)該不會(huì)很難,但真正實(shí)施起來,還是遇到了個(gè)不小的障礙2009-08-08

