Oracle資料庫審計

2021-09-01 16:24:57 字數 3944 閱讀 3120

**

一、何謂資料庫審計?

資料庫審計,就是對資料庫的活動做跟蹤記錄,主要包括資料庫連線,

sql語句執行,資料庫物件訪問這些方面的跟蹤記錄。

二、審記記錄的儲存方式

分為兩種:一種是儲存在作業系統檔案中,一種是儲存在

system

表空間中的

sys.aud$

表中。

三、對資料庫效能影響的考慮

審計必然需要占用

cpu,因此,需要綜合平衡審計需求與效能之間的平衡性問題,以確定出最好的審許策略。

四、審記結果中包含哪些資訊

前面講到審許結果的儲存分資料庫儲存和檔案儲存兩種方式。對於資料庫儲存的情況

,sys.aud$

表中包含以下資訊:

1)·作業系統使用者名稱

2)·資料庫使用者名稱

3)·連線會話標識

4)·終端標識

5)·被訪問的

schema

物件名

6)·嘗試的操作

7)·操作的完整**

8)·日期和時間戳

若審計記錄儲存在外部操作檔案中,則該檔案可能包含以下資訊:

1)·作業系統產生的審計記錄

2)·資料庫的審計記錄

3)·被審計到的資料庫操作

4)·超級管理員

(sys)

的審計記錄

其中,被寫到檔案中的審計記錄是以編碼的方式儲存的,如果要理解這些編碼所對應的資訊,可以查詢以下資料字典表:

編碼資訊資料字典表

-------------------------------

資料庫操作**表示嘗試的操作。它的相關描述可以從資料字典表

audit_actions

表中查詢到

操作所使用的許可權可以在字典表

system_privilege_map

中查詢到對應的說明

完整的操作**操作成功時將返回

0,失敗時返回相關

oracle

錯誤資訊,錯誤資訊碼所對應的說明可以從

oracle

官方文件中獲得

--------------------------------

五、預設的審計

不論當前是否已經開啟的審計功能,資料庫都會把一些資料庫相關的操作寫入外部審計檔案中

(注意:不是寫入

sys.aud$表)

,這些被預設審計的操作是:

1)·以超級管理員許可權對資料庫的連線

(connectassysdba

或connectassysoper)

2)·資料庫啟動

3)·資料庫停止

六、對超級管理員使用者的操作行為的審計

超級管理員使用者指的是以

assysdba

或assysoper

方式連線資料庫的使用者。初始化引數

audit_sys_operations

用來指定是超級管理員的審計選項,

如果將audit_sys_operations

設定為true

,那麼所有超級管理員的操作都將被審計,而不管當前是否有開啟審計功能,而且所有的審計資訊都被寫入外部審計檔案中(

注意:不是寫入

sys.aud$表)。

七、執行審計

1.設定審計記錄的存放位置

初始化引數

audit_trail

指定了審計記錄的存放位置,該引數有三個取值:

1)·db審計記錄存放在資料庫的

sys.aud$表中

2)·os

審計記錄存放在外部的作業系統檔案中

3)·none

關閉審計(預設值)

初始化引數

audit_file_dest

指定了當審外部審記檔案目標儲存路徑,其預設值是

$oracle_home/rdbms/audit

2.審計選項

這個審計選項指的是執行審計的

audit

語句的可選項。

audit

語句的語法請參考

oracle

官方sql

參考。

3.以例項說明審計

a.審計某使用者的會話的建立與結束

auditsessionbyscott,fey;

b.審計所有使用者的會話的建立與結束

auditsession;

c.審計刪除表的操作

auditdeleteanytable;

c.審計刪除表的操作

(限制:只審計刪除失敗的情況)

auditdeleteanytablewhenevernotsuccessful;

d.審計刪除表的操作

(限制:只審計刪除成功的情況)

auditdeleteanytablewheneversuccessful;

e.審計刪除表的操作

(限制:同乙個會話中相同的操作語句只審計一次)

auditdeleteanytablebysession; (

注:對於這種情況,如果審計記錄被設定為儲存在外部檔案中時,這個效果是體現不出來的,因為

oracle

無法判斷是否已經審計過相同的操作語句。)

f.審計刪除表的操作

(限制:每支刪除語句都審計,不論同一會話中是否有多條相同的操作語句)

auditdeleteanytablebyaccess;

g.審計對fey.employee

表的delete操作

auditdeleteonfey.employee;

h.審計對fey.employee

表的delete

、updet

、insert操作

auditdelete,update,insertonfey.employee;

八、停止審計

停止審計使用

noaudit

語句,該語句的語法請參考

oracle

官方sql

參考。下面以例項說明

noaudit

的使用:

a.停止所有對會話的建立與結束的審計

noauditsession;

b.停止對使用者

fey,scott

的會話的建立與結束的審計

noauditsessionbyfey,scott;

c.停止審計刪除表的操作

noauditdeleteanytable;

c.停止審計刪除表的操作

(限制:停止審計刪除失敗的情況)

noauditdeleteanytablewhenevernotsuccessful;

d.停止審計刪除表的操作

(限制:停止審計刪除成功的情況)

noauditdeleteanytablewheneversuccessful;

g.停止審計對

fey.employee

表的delete操作

noauditdeleteonfey.employee;

h.停止審計對

fey.employee

表的delete

、updet

、insert操作

noauditdelete,update,insertonfey.employee;

oracle 資料庫審計

1 審計初始化引數 在init檔案中新增 audit trail db 2 設定審計 物件審計 audit delete,insert,update on table by user session審計 audit session 指定使用者 audit session by user1,user2...

oracle資料庫審計架構

審計始終關注問責制,進行審計通常是為了保護資料庫中儲存的資訊的隱私。隨著資料庫在企業中和網際網路上的普遍使用,對隱私政策和做法的擔憂也在持續增加。oracle database 提供了深度審計,讓系統管理員能夠實施增強的保護措施,及時發現可疑活動,做出精心優化的安全應對。oracle databas...

Oracle資料庫SQL審計

在我們日常的工作中,一些安全性的要求高的資料庫需要增加審計操作,哪個使用者什麼時間做了什麼操作。1.開啟資料庫的審計 alter system set audit sys operations true scope spfile 審計管理使用者 alter system set audit trai...