主頁 > 資料庫 > Oracle 11g與12c的審計詳解

Oracle 11g與12c的審計詳解

2020-09-14 06:13:56 資料庫

最近遇到一些腳本誘發的審計相關BUG,感覺有必要重新梳理一下11g與12c的審計模式,于是根據官網修正了一下以前的一篇筆記這里發出來,

一、審計功能的開啟:

SQL> show parameter audit--主要有以下四個引數:AUDIT_TRAIL(default:DB)AUDIT_FILE_DEST(default:ORACLE_BASE/admin/ORACLE_SID/adump or ORACLE_HOME/rdbms/audit)AUDIT_SYS_OPERATIONS(default:FALSE)AUDIT_SYSLOG_LEVEL(no default)

audit_trail引數的值可以設定為以下幾種(11G,12C適用):

https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams017.htm#REFRN10006

1. none --不開啟2. os --啟用資料庫審計,并將資料庫審計記錄定向到作業系統檔案,存盤目錄為AUDIT_FILE_DEST3. db --開啟審計功能 啟用資料庫審計,并將資料庫所有審計記錄定向到資料庫的SYS.AUD$表5. db, extended --extened之前的空格必須有,啟用資料庫審計,并將資料庫所有審計記錄定向到資料庫的SYS.AUD$表,另外填充SYS.AUD$表的SQLBIND列和SQLTEXT列6. xml  --類似os,但是是將審計記錄存放于XML格式的檔案中7. xml, extended --將審計記錄存放于作業系統的xml檔案中并填充sql_text和sql_bind資訊#此引數無法動態修改,因此需要重啟資料庫才能生效,示例:alter system set AUDIT_TRAIL=db scope=spfile;#對于db和db, extended兩種審計模式,如果資料庫是read-only模式的,那么資料庫默認使用os審計模式,無視已有設定(因為不能向資料庫表寫入資料),

AUDIT_SYS_OPERATIONS設定為true那么sys用戶的操作也會被審計,但此值默認為false,此引數控制以sysdba和sysoper權限登陸的用戶以及sys用戶本身的登陸,審計記錄一定會寫在作業系統檔案中(無論AUDIT_TRAIL引數如何設定),

AUDIT_SYSLOG_LEVEL則表示當涉及到向作業系統檔案寫入審計記錄時,直接寫入到系統日志中而不是AUDIT_FILE_DEST(僅適用于類unix系統),

二、審計記錄的存盤
審計的兩大分類:
  • 標準審計:主要記錄一些涉及資料庫安全性的SQL操作和權限變更等,官網列出的默認標準審計項包含如下操作(通過DBA_STMT_AUDIT_OPTS查看):
    --Oracle Database audits the following privileges by default:ALTER ANY PROCEDURE 	CREATE ANY LIBRARY 				DROP ANY TABLEALTER ANY TABLE 		CREATE ANY PROCEDURE 			DROP PROFILEALTER DATABASE 			CREATE ANY TABLE 				DROP USERALTER PROFILE 			CREATE EXTERNAL JOB 			EXEMPT ACCESS POLICYALTER SYSTEM 			CREATE PUBLIC DATABASE LINK 	GRANT ANY OBJECT PRIVILEGEALTER USER 				CREATE SESSION 					GRANT ANY PRIVILEGEAUDIT SYSTEM 			CREATE USER 					GRANT ANY ROLECREATE ANY JOB 			DROP ANY PROCEDURE 	 --Oracle Database audits the following SQL statement shortcuts by default:ROLE 					SYSTEM AUDIT 					PUBLIC SYNONYMDATABASE LINK 			PROFILE 						SYSTEM GRANT--此外通過audit命令指定的審計也是標準審計,
  • 精細審計:提供非常細粒度的審計,例如可以使你審計針對某個表的某些欄位在某一段時間內的某種DML操作,還可以限定客戶端的IP等,

標準審計記錄存盤在SYS.AUD$表中,精細審計的記錄存放于SYS.FGA_LOG$表中,分別可以通過DBA_AUDIT_TRAIL和DBA_FGA_AUDIT_TRAIL查看標準和精細審計的審計記錄,

兩種審計模式還有一個共同的視圖可以看:DBA_COMMON_AUDIT_TRAIL,包含了標準+精細審計的記錄,

truncate table aud$; --可以截斷相關表,清理審計資料,

查看dba_common_audit_trail(包含標準和精細審計的記錄)可以看到記錄的主要欄位包含:

SESSION_ID:會話ID,并非實際資料庫會話的id,應該只是一個自增的IDEXTENDED_TIMESTAMP:記錄生成時間DB_USER、OS_USER、USERHOST:一些用戶相關的資訊OS_PROCESS:服務端對應的server process的系統行程ID,如果帶冒號:,冒號后邊的是執行緒IDRETURNCODE:服務端的回傳錯誤碼,比如密碼驗證失敗就會顯示1017的錯誤碼,即ORA-1017:"invalid username/password; logon denied"COMMENT_TEXT:如果是遠程登錄還會包含客戶端連接使用的TNS資訊,包括使用的埠號LOGOFF_TIME:會話登出時間LOGOFF_LREAD、LOGOFF_PREAD、LOGOFF_LWRITE、LOGOFF_DLOCK:會話期間的邏輯讀、物理讀、物理寫、死鎖次數ACTION:審計記錄對應的操作號STATEMENT_TYPE:審計記錄對應的操作號表示的具體操作,也可以用過查詢audit_actions視圖來獲取action與STATEMENT_TYPE的對應關系

提示:

12c中的unified審計記錄不在AUD$表中,而是存盤在AUDSYS schema下,可以通過AUDSYS.UNIFIED_AUDIT_TRAIL表查詢,開啟unified審計后傳統的AUD$和dba_common_audit_trail等不再包含任何審計記錄,

三、關于精細審計(fine-grained auditing):

https://docs.oracle.com/cd/E11882_01/network.112/e36292/auditing.htm#DBSEG525

如果想要細粒度的審計某個schema下針對某個表的某些資料的操作記錄,可以開啟精細審計,這允許你設計很細粒度的策略,例如創造一個fga策略如下:

--查看相關包的用法:desc DBMS_FGA;
BEGIN DBMS_FGA.ADD_POLICY( OBJECT_SCHEMA=>'HR',                    OBJECT_NAME =>'EMPLOYEES',                     POLICY_NAME =>'SAL_AUD',                     AUDIT_CONDITION =>'SALARY>3000',                AUDIT_COLUMN =>'SALARY',                                     ENABLE=>TRUE,                           STATEMENT_TYPES=>'SELECT,UPDATE');END;--在sqlplus 中直接/執行,或者作為存盤程序在plsql中exec dbms_fga.add_policy(...........);

 查看精細審計策略:

DESC dba_audit_policies;--查看已創建的精細審計策略SELECT OBJECT_NAME,POLICY_NAME,ENABLED FROM DBA_AUDIT_POLICIES;

洗掉精細策略:

begindbms_fga.drop_policy (object_schema=>'HR',object_name=>'TEST',policy_name=>'SAL_AUD');end;/

四、查看審計記錄:

DBA_COMMON_AUDIT_TRAIL:https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_3077.htm#REFRN23393

desc dba_common_audit_trail;--示例:12c之前查看因為密碼驗證失敗的審計記錄:select 	EXTENDED_TIMESTAMP,DB_USER, OS_USER, USERHOST, COMMENT_TEXTfrom dba_common_audit_trailwhere 	DB_USER = 'EASYITS'   and RETURNCODE = 1017   and EXTENDED_TIMESTAMP between       to_timestamp('2019-04-18 21:30:00', 'YYYY-MM-DD HH24:MI:SS') and       to_timestamp('2019-04-18 22:30:00', 'YYYY-MM-DD HH24:MI:SS');

 五、12c審計:

官網參考:

12c的傳統審計(即11g里的標準審計和精細審計):

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/AUDIT-Traditional-Auditing.html#GUID-ADF45B07-547A-4096-8144-50241FA2D8DD

12c的unified審計:

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/AUDIT-Unified-Auditing.html#GUID-B24D6874-4053-4E66-8238-6CD0C87E9DCA

12c中新引入的審計機制名為unified audit,你可以將其理解為一種更加輕便的精細審計,

我們知道在12c之前想要使用精細審計就要用dbms_fga包去創建審計策略,想要使用標準審計就要用audit陳述句去審計特定的權限和SQL,相關的視圖也非常多,這導致審計策略的管理非常混亂,audit的語法也非常的反人類,而12c的unified audit則對設定審計策略的方式做了統一和簡化,只需要使用以下三種陳述句來設定審計策略就可以了:

  • create audit policy (unified auditing)
  • alter audit policy (unified auditing)
  • drop audit policy (unified auditing)

而開啟和關閉審計策略也極簡,只需要使用簡單的audit和noaudit陳述句:

audit policy <policy_name>;noaudit policy <policy_name>;

可以看到我們只要熟悉創建/修改審計策略的語法就可以了,

至于原有的標準審計和精細審計的創建模式,12c中依然保留,在混合審計模式下你依然可以使用dbms包創建精細審計,audit命令也保留著創建標準審計的語法,

Unified審計模式的開啟:

12c的Unified Auditing引數默認為false:

select parameter,value from v$option where parameter='Unified Auditing';

這種默認設定表示既支持12c之前的那種標準+精細的傳統審計模式,也可以使用unified審計模式,這種默認的模式也被稱作混合審計模式(mixed),

而如果開啟unified audting,那么傳統審計模式就會被禁用,audit_trail引數被忽略,AUD$和FGA_LOG$等相關表不再新增任何審計記錄,只能在AUDSYS.UNIFIED_AUDIT_TRAIL中看到unified審計的記錄,

如何開啟unified審計?

SQL> shutdown immediate;ORACLE instance shut down.SQL> host lsnrctl stop--如果有EM啟用,那么暫時關閉:emctl stop omsSQL> host ( cd $ORACLE_HOME/rdbms/lib ; make -f ins_rdbms.mk uniaud_on ioracle )--同樣的關閉方式就是:make -f ins_rdbms.mk uniaud_off ioracleSQL> startupSQL> select * from v$option where PARAMETER = 'Unified Auditing';

 

12c混合審計模式下的審計表現:

我們知道11g中,只要audit_trail不為none,那么資料庫會默認審計一些操作,例如logon,logout和涉及資料庫安全的操作等,而在12c中系統也預設了一些unified審計策略,可以通過AUDIT_UNIFIED_ENABLED_POLICIES視圖查看已生效的審計策略,通過AUDIT_UNIFIED_POLICIES可以查看所有預設審計策略,

12c的混合模式下,對于11g中那些標準審計默認審計的審計項們也依然進行審計,只不過方式變了,變為了通過默認開啟一些unified審計策略來進行這些默認審計(DBA_STMT_AUDIT_OPTS也不再包含記錄),我們可以看一下這些默認開啟的審記策略:

select * from AUDIT_UNIFIED_ENABLED_POLICIES;
 

以上為12c中默認開啟的審計策略,其中ORA_LOGON_FAILURES在12.1.0.2以后被從ORA_SECURECONFIG獨立出來,并且只審計失敗的登錄.

而從AUDIT_UNIFIED_POLICIES視圖可以看出ORA_SECURECONFIG其實就包含了以前的那些默認標準審計項,

混合模式下無論是傳統審計記錄,還是通過預設的unified auditing policy進行的默認審計,其審計記錄在dba_common_audit_trail中都可以查看,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/31545.html

標籤:Oracle

上一篇:[20191119]探究ipcs命令輸出2.txt

下一篇:oracle體系結構簡介

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more