16.審計(筆記)
16.審計
執行oracle資料庫時,各類人員經常會以資料庫使用者的身份登陸到資料庫,並執行各種資料庫操作(DML,DDL,DCL).為了跟蹤資料庫使用者所執行的各種資料庫操作,防止使用者執行非法操作,可以使用資料庫審計(Audit),審計用於監視使用者所執行的資料庫操作.並且oracle會將審計跟蹤結果放到OS檔案或資料庫中.
審計分為:
特權使用者審計
預設情況下,oracle會自動審計特權使用者所執行的特權操作,並將特權操作的相關資訊記載到作業系統的審計跟蹤記錄中,為了審計特權使用者所執行的其他資料庫操作,必須設定初始化引數audit_sys_operations.
資料庫審計
為了審計資料庫使用者所執行的操作,必須設定初始化引數AUDIT_TRAIL,並且指定要審計的資料庫操作.
應用審計.
使用資料庫審計時,oracle只會記載執行審計操作的使用者名稱,資料庫操作,操作物件以及操作時間等資訊.而不會記載資料的變化.為了審計資料變化,必須使用應用審計.
1,特權使用者審計
預設情況下,oracle只會審計特權使用者的連線,啟動資料庫和關閉資料庫的操作.為了審計特權使用者執行的其他操作資訊.必須將初始化引數AUDIT_SYS_OPERATIONS設定為TRUE.因為該引數是靜態引數,所有修改了該初始化引數戶必須重慶資料庫.
ALTER SYSTEM SET audit_sys_operations=TRUE SCOPE=SPFILE;
2,資料庫審計.
啟用資料庫審計
為了啟用資料庫審計,必須修改初始化引數AUDIT_TRAIL.該初始化引數的預設值為NONE,為了啟用資料庫審計,必須將該引數設定為OS或DB.設定初始化引數為DB時,oracle會將審計結果存放到資料字典AUD$中.
ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;
指定審計選項.
BY SESSION:該選項表示在同一個會話中對完全相同的SQL語句只生成一條審計跟蹤記錄,該選項是預設選擇.
BY ACCESS:該選項標識每執行一次語句生成一條審計跟蹤記錄.當審計DDL語句或DDL系統許可權時,無論指定BY ACCESS 還是 BY SESSION選項.oracle總是使用BY ACCESS選項.
BY 使用者名稱:該選項用於指定審計特定的資料庫使用者.如果不指定該選項.oracle會自動審計除特權使用者外的所有其他使用者.
WHENEVER [NOT] SUCCESSFUL: WHENEVER SUCCESSFUL選項用於指定審計執行成功的操作,WHENEVER NOT SUCCESSFUL選項用於指定審計失敗的操作.如果忽略這兩個選項,則操作無論成功與否都會被審計.
語句審計
語句審計用於審計與特定語句相關的SQL操作.例如,當指定審計USER語句時,oracle會審計CREATE USER,ALTER USER和DROP USER等操作
1,設定語句審計
SQL>AUDIT TABLE;
2,執行語句操作
3,顯示審計跟蹤結果.
啟用資料庫審計後,審計跟蹤會被記載到資料字典表SYS.AUD$中.透過查詢資料字典dba_audit_trail,可以取得審計跟蹤結果,包括OS使用者名稱,資料庫使用者名稱,操作名,物件名以及操作時間等資訊.
SELECT username,action_name,obj_name,
To_char(timestamp,’YYYY-MM_DD HH24:MI’)
FROM dba_audit_trail;
USERNAME 用於標識執行SQL操作的資料庫使用者名稱,ACTION_NAME用於標識具體的SQL操作,OBJ_NAME用於標識SQL操作對應的資料庫物件,TIMESTAMP用於標識SQL操作的執行時間.
4,顯示以及設定的審計選項.
SELECT user_name,audit_option FROM dba_stmt_audit_opts;
USER_NAME用於標識被審計的資料庫使用者名稱(空表示審計所有使用者),AUDIT_OPTION用於標識以及被設定的選項.
5,禁止語句審計
SQL>NOAUDIT TABLE;
許可權審計
許可權審計用於審計與系統許可權相關的SQL操作
1,指定許可權審計
AUDIT CREATE TABLE;
2,執行語句操作
3,顯示審計跟蹤結果.
啟用資料庫審計後,審計跟蹤會被記載到資料字典表SYS.AUD$中.透過查詢資料字典dba_audit_trail,可以取得審計跟蹤結果,包括OS使用者名稱,資料庫使用者名稱,操作名,物件名以及操作時間等資訊.
SELECT username,action_name,obj_name,
To_char(timestamp,’YYYY-MM_DD HH24:MI’)
FROM dba_audit_trail;
USERNAME 用於標識執行SQL操作的資料庫使用者名稱,ACTION_NAME用於標識具體的SQL操作,OBJ_NAME用於標識SQL操作對應的資料庫物件,TIMESTAMP用於標識SQL操作的執行時間.
4,顯示以及設定的審計選項.
SELECT user_name,privilege FROM dba_priv_audit_opts;
USER_NAME用於標識被審計的資料庫使用者名稱(空表示審計所有使用者),PRIVILEGE用於標識以及被設定的選項.
5,禁止語句審計
SQL>NOAUDIT CREATE TABLE;
物件審計
物件審計用於審計特定方案物件上的SQL操作.使用物件審計時,預設情況下,在同一個會話中相同SQL語句只被審計一次,為了審計每條被執行的SQL語句,需要指定BY ACCESS選項.
1,設定物件審計
AUDIT ALL ON scott.emp;
2,執行與物件審計相關的操作
3,查詢審計跟蹤記錄
SELECT username,ses_actions,obj_name,
To_char(timestamp,’YYYY-MM_DD HH24:MI’)
FROM dba_audit_trail;
SES_ACTIONS用於標識會話的SQL操作.
4,顯示以及設定的物件審計選項.
SELECT sel, ins, upd, del FROM dba_obj_audit_opts
WHERE owner=’scott’ AND object_name=’EMP’;
SEL用於標識SELECT審計選項,INS用於標識INSERT審計選項,UPD用於標識UPDATE審計選項,DEL用於標識UPDATE審計選項,OWNER用於標識物件所有者,OBJECT_NAME用於標識物件名.
5,禁止物件審計
NOAUDIT ALL ON scott.emp;
刪除審計跟蹤
DELETE FROM sys.aud$;
COMMIT;
使用精細審計(省略)
使用物件審計(省略)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245242/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python3 筆記16.構建函式defPython筆記函式
- 【筆記】從0開始的程式碼審計筆記
- Asp-Net-Core開發筆記:實現動態審計日誌功能筆記
- 記一次完整的PHP程式碼審計——yccms v3.4審計PHP
- DM7審計之物件審計物件
- 審聽訓練與音質主觀評價——筆記筆記
- MySQL 5.7.24安裝MySQL審計外掛小記MySql
- 記一次髮卡網程式碼審計
- 記錄一次CMS的程式碼審計
- C++筆記 14:審慎使用異常規格(exception specifications)C++筆記Exception
- DM7審計之語句序列審計
- DM7審計之語句級審計
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇4 - XXE漏洞審計Java
- Asp-Net-Core開發筆記:進一步實現非侵入性審計日誌功能筆記
- 設計筆記:世界觀設計筆記
- AUDIT審計(2)
- Oracle審計(轉)Oracle
- Kubernetes 審計(Auditing)
- IT審計隨想
- Oracle:審計清理Oracle
- MySQL審計auditMySql
- 設計模式筆記(2)設計模式筆記
- JAVA設計模式筆記Java設計模式筆記
- 數理統計筆記筆記
- [筆記] 計算幾何筆記
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇3 - 檔案上傳漏洞審計Java
- 非同步程式設計筆記非同步程式設計筆記
- 高併發設計筆記筆記
- 會計學課程筆記筆記
- Windows sdk程式設計筆記Windows程式設計筆記
- 統計學習方法筆記筆記
- 設計模式學習筆記設計模式筆記
- 網路程式設計筆記程式設計筆記
- 學習筆記-設計模式筆記設計模式
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇2 - SQL隱碼攻擊漏洞審計JavaSQL
- ORACLE AUDIT審計(1)Oracle
- vertica審計日誌
- buu 程式碼審計
- JFinalcms程式碼審計