**
一、何謂資料庫審計?
資料庫審計,就是對資料庫的活動做跟蹤記錄,主要包括資料庫連線,
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...