Oracle11g audit審計(jì)配置全過(guò)程
一、audit是什么?
Oracle的審計(jì)功能允許數(shù)據(jù)庫(kù)管理員跟蹤和記錄對(duì)數(shù)據(jù)庫(kù)的操作,以確保數(shù)據(jù)庫(kù)的安全性、合規(guī)性和完整性。
Oracle提供了多種審計(jì)功能和方法,可以針對(duì)不同的需求和場(chǎng)景進(jìn)行配置和使用,主要包括:
- 標(biāo)準(zhǔn)審計(jì)(Standard Auditing):用于審計(jì)特定的SQL語(yǔ)句、特權(quán)、對(duì)象和操作。
- 細(xì)粒度審計(jì)(Fine-Grained Auditing, FGA):允許對(duì)表級(jí)別的數(shù)據(jù)訪(fǎng)問(wèn)進(jìn)行細(xì)粒度控制和審計(jì)。
- 統(tǒng)一審計(jì)(Unified Auditing):Oracle 12c引入的新特性,整合了標(biāo)準(zhǔn)審計(jì)、FGA等多種審計(jì)方式。
二、啟用audit
要啟用數(shù)據(jù)庫(kù)審計(jì),需要初始化參數(shù) AUDIT_TRAIL :
參數(shù)值 | 含義 |
---|---|
none | 默認(rèn)值,不做審計(jì) |
db | 啟用數(shù)據(jù)庫(kù)審計(jì)并將所有審計(jì)記錄指向數(shù)據(jù)庫(kù)審計(jì)跟蹤 (SYS.AUD$) 中 |
db_extended | 完成 AUDIT_TRAIL=DB 的全部操作并填充 SYS.AUD$ 表的 SQL 綁定和 SQL 文本列 |
xml | 啟用數(shù)據(jù)庫(kù)審計(jì)并將所有審計(jì)記錄以 XML 格式指向一個(gè)操作系統(tǒng)文件 |
os | 啟用數(shù)據(jù)庫(kù)審計(jì)并將所有審計(jì)記錄指向一個(gè)操作系統(tǒng)文件 |
此外,還應(yīng)設(shè)置以下數(shù)據(jù)庫(kù)參數(shù):
- AUDIT_FILE_DEST :指定操作系統(tǒng)審計(jì)跟蹤位置的動(dòng)態(tài)參數(shù),默認(rèn)位置為 $ORACLE_BASE/admin/$ORACLE_SID/adump。
- AUDIT_SYS_OPERATIONS :?jiǎn)⒂脤?duì)用戶(hù) SYS 以及使用 SYSDBA、SYSOPER、SYSASM、SYSBACKUP、SYSKM 和 SYSDG 權(quán)限進(jìn)行連接的用戶(hù)發(fā)出的操作的審計(jì),該參數(shù)應(yīng)當(dāng)設(shè)為 true。
可以通過(guò)以下命令修改參數(shù)
alter system set audit_sys_operations=TRUE scope=spfile; alter system set audit_trail=db_extended scope=spfile;
重啟數(shù)據(jù)庫(kù)才能生效
shutdown immediate; startup;
查看是否啟動(dòng)了審計(jì)功能
show parameter audit;
三、配置標(biāo)準(zhǔn)審計(jì)
標(biāo)準(zhǔn)審計(jì)是 Oracle 數(shù)據(jù)庫(kù)的基本審計(jì)級(jí)別,可對(duì)數(shù)據(jù)庫(kù)對(duì)象(如表、視圖、過(guò)程等)的操作進(jìn)行審計(jì)。
審計(jì)記錄包括對(duì) DDL 和 DML 操作的記錄,例如對(duì)表的 SELECT、UPDATE、INSERT 或 DELETE 操作進(jìn)行記錄。
標(biāo)準(zhǔn)審計(jì)可以通過(guò) AUDIT 和 NOAUDIT 命令進(jìn)行配置。
AUDIT語(yǔ)法
AUDIT action [, action, ...] on object_name [by user] [whenever condition];
- action: 指定要審計(jì)的操作,可以是單個(gè)操作(如 SELECT、INSERT、UPDATE、DELETE)或多個(gè)操作的組合。
- object_name: 指定要審計(jì)的對(duì)象,可以是表、視圖、過(guò)程等數(shù)據(jù)庫(kù)對(duì)象。
- BY user: 可選項(xiàng),指定要審計(jì)的用戶(hù)。如果不指定,默認(rèn)為當(dāng)前用戶(hù)。
- WHENEVER condition: 可選項(xiàng),指定觸發(fā)審計(jì)的條件,例如成功或失敗。
AUDIT 參數(shù)說(shuō)明 - 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ì)象,可以是表名、視圖名、過(guò)程名等數(shù)據(jù)庫(kù)對(duì)象。
也可以使用 ALL 來(lái)審計(jì)所有對(duì)象,或者使用通配符 % 來(lái)匹配多個(gè)對(duì)象。 - by user:
指定要審計(jì)的用戶(hù),可以是具體用戶(hù)名或者 PUBLIC(對(duì)所有用戶(hù)生效)。
如果不指定 BY user,默認(rèn)為當(dāng)前用戶(hù)。 - whenever condition:
可以用來(lái)指定觸發(fā)審計(jì)的條件,常見(jiàn)的條件包括 SUCCESSFUL(成功操作)和 NOT SUCCESSFUL(失敗操作)。
例如,WHENEVER SUCCESSFUL 表示只審計(jì)成功的操作,而 WHENEVER NOT SUCCESSFUL 表示只審計(jì)失敗的操作。
示例:
審計(jì)對(duì)特定表的SELECT操作:
AUDIT SELECT ON employees;
審計(jì)特定用戶(hù)對(duì)特定表的SELECT操作:
AUDIT SELECT ON employees BY hr_user;
審計(jì)對(duì)特定表的失敗的SELECT操作:
AUDIT SELECT ON employees WHENEVER NOT SUCCESSFUL;
可以通過(guò)以下查詢(xún)顯示已啟用的審計(jì)選項(xiàng)和配置,以及審計(jì)的狀態(tài)信息。
SELECT * FROM DBA_PRIV_AUDIT_OPTS; -- 查看特權(quán)操作的審計(jì)配置 SELECT * FROM DBA_STMT_AUDIT_OPTS; -- 查看語(yǔ)句級(jí)操作的審計(jì)配置 SELECT * FROM DBA_OBJ_AUDIT_OPTS; -- 查看對(duì)象級(jí)操作的審計(jì)配置
通過(guò)使用 AUDIT 語(yǔ)句,管理員可以靈活地配置審計(jì)策略,跟蹤和記錄數(shù)據(jù)庫(kù)中特定操作的執(zhí)行情況,以確保數(shù)據(jù)庫(kù)的安全性和合規(guī)性。
四、審計(jì)記錄管理
審計(jì)記錄管理包括查看、存檔和清理審計(jì)記錄。
1.查看審計(jì)記錄
可以通過(guò)以下視圖查看審計(jì)記錄:
DBA_AUDIT_TRAIL:查看標(biāo)準(zhǔn)審計(jì)記錄。 DBA_FGA_AUDIT_TRAIL:查看細(xì)粒度審計(jì)記錄。 UNIFIED_AUDIT_TRAIL:查看統(tǒng)一審計(jì)記錄。
2.清理審計(jì)記錄
可以定期清理過(guò)期的審計(jì)記錄,以避免占用過(guò)多的存儲(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)注意,開(kāi)啟審計(jì)功能可能會(huì)對(duì)數(shù)據(jù)庫(kù)性能產(chǎn)生一定影響,因此應(yīng)根據(jù)實(shí)際需求和安全政策來(lái)配置審計(jì)選項(xiàng),并定期維護(hù)審計(jì)記錄以保證數(shù)據(jù)庫(kù)的安全性和合規(guī)性。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ORACLE應(yīng)用經(jīng)驗(yàn)(2)
ORACLE應(yīng)用經(jīng)驗(yàn)(2)...2007-03-03在Oracle數(shù)據(jù)庫(kù)中添加外鍵約束的方法詳解
這篇文章主要介紹了在Oracle數(shù)據(jù)庫(kù)中添加外鍵約束的方法,需要的朋友可以參考下2016-01-01Oracle連接出現(xiàn)ora-12154無(wú)法解析指定的連接標(biāo)識(shí)符
這篇文章主要介紹了Oracle連接出現(xiàn)ora-12154無(wú)法解析指定的連接標(biāo)識(shí)符,需要的朋友可以參考下2017-03-03[Oracle] Data Guard 之 三種保護(hù)模式介紹
Data Guard提供如下三種數(shù)據(jù)保護(hù)模式,以下是對(duì)這三種保護(hù)模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07Oracle 實(shí)現(xiàn)類(lèi)似SQL Server中自增字段的一個(gè)辦法
由于Oracle中沒(méi)有類(lèi)似SQL Server中的自增字段,所以我們?nèi)绻胍ㄟ^(guò)設(shè)定類(lèi)似ID性質(zhì)的唯一列的話(huà),需要借助Oracle的sequence,先建立一個(gè)序列,然后在每次插入數(shù)據(jù)的時(shí)候,通過(guò)前觸發(fā)器來(lái)更新ID值,并將序列的序號(hào)加1,這樣的迂回方式來(lái)實(shí)現(xiàn)。2009-07-07Oracle數(shù)據(jù)庫(kù)復(fù)雜度設(shè)置圖文教程
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)復(fù)雜度設(shè)置的相關(guān)資料,Oracle可以通過(guò)設(shè)置密碼復(fù)雜度來(lái)提高數(shù)據(jù)庫(kù)的安全性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04Oracle數(shù)據(jù)庫(kù)把多行轉(zhuǎn)一列逗號(hào)分割兩種方法
Oracle將行轉(zhuǎn)換為列是指將關(guān)系型數(shù)據(jù)庫(kù)中的行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)的操作,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)把多行轉(zhuǎn)一列逗號(hào)分割兩種方法的相關(guān)資料,需要的朋友可以參考下2024-07-07Oracle關(guān)于重建索引爭(zhēng)論的總結(jié)
這篇文章主要介紹了Oracle關(guān)于重建索引爭(zhēng)論的總結(jié),本文總結(jié)了重建索引的理由、重建索引的本質(zhì)、反對(duì)重建索引的理由等內(nèi)容,需要的朋友可以參考下2014-09-09