新聞中心
隨著信息技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)管理系統(tǒng)也變得越來(lái)越重要。數(shù)據(jù)庫(kù)作為現(xiàn)代企業(yè)信息化的基礎(chǔ),已經(jīng)成為必要的IT基礎(chǔ)設(shè)施,為企業(yè)的業(yè)務(wù)運(yùn)營(yíng)提供了全方位、高效率的解決方案。而Oracle數(shù)據(jù)庫(kù)作為市場(chǎng)領(lǐng)先的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),具有高可用性、高性能和高安全性等諸多優(yōu)點(diǎn),是企業(yè)常用的數(shù)據(jù)庫(kù)管理系統(tǒng)之一。本文將深入淺出的介紹oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)指南,為讀者帶來(lái)一份實(shí)用的參考,幫助理解和設(shè)計(jì)Oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)。

成都創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站、網(wǎng)站重做改版、蕭縣網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為蕭縣等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
一、Oracle數(shù)據(jù)庫(kù)概述
Oracle數(shù)據(jù)庫(kù)是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由Oracle公司開(kāi)發(fā),可管理大規(guī)模數(shù)據(jù)。該數(shù)據(jù)庫(kù)支持大多數(shù)操作系統(tǒng),包括UNIX、Linux和Windows等。Oracle數(shù)據(jù)庫(kù)的主要特點(diǎn)包括高安全性、高可用性、高性能、可伸縮性和易于管理等。Oracle數(shù)據(jù)庫(kù)可安裝在單臺(tái)服務(wù)器上,也可以分布式部署在多臺(tái)服務(wù)器上,以滿足不同規(guī)模企業(yè)的需求。
二、Oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)指南
Oracle數(shù)據(jù)庫(kù)架構(gòu)是數(shù)據(jù)庫(kù)的基礎(chǔ)架構(gòu),支持?jǐn)?shù)據(jù)的存儲(chǔ)、訪問(wèn)、維護(hù)和管理。正確的架構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)庫(kù)性能和穩(wěn)定性,降低運(yùn)維成本。以下是Oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)的指南:
1. 數(shù)據(jù)庫(kù)實(shí)例
數(shù)據(jù)庫(kù)實(shí)例是Oracle數(shù)據(jù)庫(kù)的核心,包含了數(shù)據(jù)庫(kù)的所有進(jìn)程和內(nèi)存結(jié)構(gòu)。實(shí)例由多個(gè)進(jìn)程組成,其中包括系統(tǒng)進(jìn)程和用戶進(jìn)程,用于管理和控制數(shù)據(jù)庫(kù)的各個(gè)方面。數(shù)據(jù)庫(kù)實(shí)例包括內(nèi)存結(jié)構(gòu)和文件結(jié)構(gòu)兩部分。
內(nèi)存結(jié)構(gòu)包括SGA和PGA,其中SGA(System Global Area)用于存儲(chǔ)數(shù)據(jù)庫(kù)的共享數(shù)據(jù)和內(nèi)存緩存,例如數(shù)據(jù)塊緩存、重做日志緩存等;PGA(Process Global Area)用于存儲(chǔ)會(huì)話和進(jìn)程相關(guān)的數(shù)據(jù)。
文件結(jié)構(gòu)包括控制文件、數(shù)據(jù)文件、重做日志文件和歸檔日志文件??刂莆募鎯?chǔ)數(shù)據(jù)庫(kù)的結(jié)構(gòu)信息,例如數(shù)據(jù)文件和重做日志文件等的位置、大小和狀態(tài)等;數(shù)據(jù)文件存儲(chǔ)數(shù)據(jù)庫(kù)的實(shí)際數(shù)據(jù),例如表、索引和視圖等;重做日志文件用于存儲(chǔ)數(shù)據(jù)庫(kù)的操作信息,例如DML和DDL語(yǔ)句等;歸檔日志文件用于存儲(chǔ)重做日志文件的備份,支持故障恢復(fù)和數(shù)據(jù)備份等。
2. 數(shù)據(jù)庫(kù)對(duì)象
數(shù)據(jù)庫(kù)對(duì)象是構(gòu)成數(shù)據(jù)庫(kù)的基本元素,包括表、索引、視圖、存儲(chǔ)過(guò)程、觸發(fā)器等。數(shù)據(jù)庫(kù)對(duì)象可以分為兩類,一類是系統(tǒng)對(duì)象,由Oracle數(shù)據(jù)庫(kù)自動(dòng)創(chuàng)建和維護(hù),例如數(shù)據(jù)庫(kù)的元數(shù)據(jù)和內(nèi)部對(duì)象;另一類是用戶對(duì)象,由應(yīng)用程序或用戶創(chuàng)建和維護(hù),例如表和視圖等。
正確的數(shù)據(jù)庫(kù)對(duì)象設(shè)計(jì)可以提高查詢效率、降低存儲(chǔ)空間和維護(hù)成本。例如,合理的表設(shè)計(jì)應(yīng)該遵循范式規(guī)則、優(yōu)化索引和分區(qū)等;合理的視圖設(shè)計(jì)應(yīng)該盡量簡(jiǎn)化查詢語(yǔ)句和減少邏輯計(jì)算等。
3. 存儲(chǔ)管理
存儲(chǔ)管理是數(shù)據(jù)庫(kù)管理的核心,包括分區(qū)、壓縮和表空間等。分區(qū)是將大表按照特定的規(guī)則劃分成小表,以提高查詢效率和減少存儲(chǔ)空間。壓縮是對(duì)表和索引進(jìn)行數(shù)據(jù)壓縮,以減少存儲(chǔ)空間和提高查詢效率。表空間是存儲(chǔ)數(shù)據(jù)和對(duì)象的物理空間,包括數(shù)據(jù)文件、重做日志文件和歸檔日志文件等。
4. 數(shù)據(jù)庫(kù)安全
數(shù)據(jù)庫(kù)安全是保證數(shù)據(jù)庫(kù)和數(shù)據(jù)安全的關(guān)鍵,包括身份驗(yàn)證、授權(quán)和審計(jì)等。身份驗(yàn)證是通過(guò)用戶名和密碼驗(yàn)證用戶的身份信息,以控制用戶的訪問(wèn)權(quán)限。授權(quán)是賦予用戶權(quán)限,以控制用戶訪問(wèn)對(duì)象的能力。審計(jì)是記錄用戶行為和操作信息,以追蹤敏感數(shù)據(jù)的訪問(wèn)和操作。
三、Oracle數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)
Oracle數(shù)據(jù)庫(kù)具有以下優(yōu)點(diǎn):
1. 高可用性
Oracle數(shù)據(jù)庫(kù)提供了多種高可用性解決方案,例如數(shù)據(jù)保護(hù)、實(shí)時(shí)備份和基于網(wǎng)絡(luò)的冗余等。數(shù)據(jù)保護(hù)可以策略性的備份和恢復(fù)數(shù)據(jù),以保證數(shù)據(jù)的可靠性;實(shí)時(shí)備份可以實(shí)時(shí)備份數(shù)據(jù)和日志文件,以滿足災(zāi)難恢復(fù)的需求;基于網(wǎng)絡(luò)的冗余可以在多個(gè)節(jié)點(diǎn)之間自動(dòng)切換,以滿足業(yè)務(wù)的連續(xù)性需求。
2. 高性能
Oracle數(shù)據(jù)庫(kù)提供了高速緩存、多線程、計(jì)算優(yōu)化和網(wǎng)絡(luò)優(yōu)化等技術(shù),以提高數(shù)據(jù)庫(kù)的性能。高速緩存可以有效利用內(nèi)存緩存數(shù)據(jù),以減少磁盤(pán)I/O的訪問(wèn);多線程可以提高并發(fā)性能,以提高更新和查詢的效率;計(jì)算優(yōu)化可以優(yōu)化查詢語(yǔ)句和索引,以提高查詢效率;網(wǎng)絡(luò)優(yōu)化可以優(yōu)化網(wǎng)絡(luò)通信,以提高數(shù)據(jù)庫(kù)的響應(yīng)速度。
3. 易于管理
Oracle數(shù)據(jù)庫(kù)提供了易于管理的工具和界面,例如Enterprise Manager和Grid Control。這些工具可以實(shí)現(xiàn)自動(dòng)管理、資源規(guī)劃和性能監(jiān)控,以降低運(yùn)維成本和提高生產(chǎn)效率。
四、Oracle數(shù)據(jù)庫(kù)的局限性
Oracle數(shù)據(jù)庫(kù)也有一些局限性,例如:
1. 昂貴的許可證
Oracle數(shù)據(jù)庫(kù)的許可證費(fèi)用較高,對(duì)于中小企業(yè)來(lái)說(shuō)可能不太適合。此外,Oracle數(shù)據(jù)庫(kù)的高端功能可能需要額外的許可證費(fèi)用。
2. 復(fù)雜的設(shè)置
Oracle數(shù)據(jù)庫(kù)的設(shè)置和配置比較復(fù)雜,需要專業(yè)的管理員進(jìn)行管理和維護(hù)。此外,Oracle數(shù)據(jù)庫(kù)的高級(jí)功能可能需要專業(yè)培訓(xùn)或顧問(wèn)服務(wù)。
3. 高要求的硬件
Oracle數(shù)據(jù)庫(kù)對(duì)硬件的要求較高,需要大內(nèi)存、多CPU和高速磁盤(pán)等硬件,以保證數(shù)據(jù)庫(kù)的性能和可用性。
五、
Oracle數(shù)據(jù)庫(kù)作為市場(chǎng)領(lǐng)先的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),具有許多優(yōu)點(diǎn)和一些局限性。正確的數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)庫(kù)性能和穩(wěn)定性,降低運(yùn)維成本。此外,合理的存儲(chǔ)管理和數(shù)據(jù)安全策略可以提高數(shù)據(jù)的保護(hù)和安全性。因此,在使用Oracle數(shù)據(jù)庫(kù)時(shí),需要深入理解Oracle數(shù)據(jù)庫(kù)的具體特點(diǎn)和局限性,以充分發(fā)揮數(shù)據(jù)庫(kù)的優(yōu)點(diǎn),實(shí)現(xiàn)企業(yè)的信息化建設(shè)。
相關(guān)問(wèn)題拓展閱讀:
- 如何合理創(chuàng)建Oracle數(shù)據(jù)庫(kù)索引的3個(gè)要求
- Oracle OCP是什么???
- Oracle數(shù)據(jù)庫(kù)基本知識(shí)
如何合理創(chuàng)建Oracle數(shù)據(jù)庫(kù)索引的3個(gè)要求
如何合理創(chuàng)建Oracle數(shù)據(jù)庫(kù)索引的3個(gè)要求:
在Oracle數(shù)據(jù)庫(kù)中,創(chuàng)建索引雖然比較簡(jiǎn)單。但是要合理的創(chuàng)建索引則比較困難了。筆者認(rèn)為,在創(chuàng)建索引時(shí)要做到三個(gè)適當(dāng),即在適當(dāng)?shù)谋砩?、適當(dāng)?shù)牧猩蟿?chuàng)建適當(dāng)數(shù)量的索引。雖然這可以通過(guò)一句話來(lái)概括優(yōu)化的索引的基本準(zhǔn)則,但是要做到這一點(diǎn)的話,需要數(shù)據(jù)庫(kù)管理員做出很大的努力。具體的來(lái)說(shuō),要做到這個(gè)三個(gè)適當(dāng)有如下幾個(gè)要求。
一、 根據(jù)表的大小來(lái)創(chuàng)建索引。
雖然給表創(chuàng)建索引,可以提高查詢的效率。但是數(shù)據(jù)庫(kù)管理員需要注意的是,索引也需要一定的開(kāi)銷的。為此并不是說(shuō)給所有的表都創(chuàng)建索引,那么就可以提高數(shù)據(jù)庫(kù)的性能。這個(gè)認(rèn)識(shí)是錯(cuò)誤的。恰恰相反,如果不管三七二十一,給所有的表都創(chuàng)建了索引,那么其反而會(huì)給數(shù)據(jù)庫(kù)的性能造成負(fù)面的影響。因?yàn)榇藭r(shí)濫用索引的開(kāi)銷可能已經(jīng)遠(yuǎn)遠(yuǎn)大于由此帶來(lái)的性能方面的收益。所以筆者認(rèn)為,數(shù)據(jù)庫(kù)管理員首先需要做到,為合適的表來(lái)建立索引,而不是為所有的表建立索引。
一般來(lái)說(shuō),不需要為比較小的表創(chuàng)建索引。如在一個(gè)ERP系統(tǒng)的數(shù)據(jù)庫(kù)中,department表用來(lái)存儲(chǔ)企業(yè)部門(mén)的信息。一般企業(yè)的部分也就十幾個(gè),最多不會(huì)超過(guò)一百個(gè)。這100條記錄對(duì)于人來(lái)說(shuō),可能算是比較多了。但是對(duì)于計(jì)算機(jī)來(lái)說(shuō),這給他塞塞牙縫都還不夠。所以,對(duì)類似的小表沒(méi)有必要建立索引。因?yàn)榧词菇⒘怂饕?,其性能也不?huì)得到很大的改善。相反索引建立的開(kāi)銷,如維護(hù)成本等等,要比這個(gè)要大。也就是說(shuō),付出的要比得到的多,顯然違反常理。
另外,就是對(duì)于超大的表,也不一定要建立索引。有些表雖然比較大,記錄數(shù)量非常的多。但是此時(shí)為這個(gè)表建立索引并一定的合適。如系統(tǒng)中有一張表,其主要用來(lái)保存數(shù)據(jù)庫(kù)中的一些變更信息。往往這些信息只給數(shù)據(jù)庫(kù)管理員使用。此時(shí)為這張表建立索引的話,反而不合適。因?yàn)檫@張表很少用到,只有在出問(wèn)題的時(shí)候才需要查看。其次其即使查看,需要查詢的紀(jì)錄也不會(huì)很多,可能就是最近一周的更新記錄等等。對(duì)于對(duì)于一些超大的表,建立索引有時(shí)候往往不能夠達(dá)到預(yù)計(jì)的效果。而且在打表上建立索引,其索引的開(kāi)銷要比普通的表大的多。那么到底是否給大表建立索引呢?筆者認(rèn)為,主要是看兩個(gè)方面的內(nèi)容。首先是需要關(guān)注一下,在這張大表中經(jīng)常需要查詢的記錄數(shù)量。一般來(lái)說(shuō),如果經(jīng)常需要查詢的數(shù)據(jù)不超過(guò)10%到15%的話,那就沒(méi)有必要為其建立索引的必要。因?yàn)榇藭r(shí)建立索引的開(kāi)銷可能要比性能的改善大的多。這個(gè)比例只是一個(gè)經(jīng)驗(yàn)的數(shù)據(jù)。如果數(shù)據(jù)庫(kù)管理員需要得出一個(gè)比較精確的結(jié)論,那么就需要進(jìn)行測(cè)試分析。即數(shù)據(jù)庫(kù)管理員需要測(cè)試一下全表掃描的時(shí)間,看看其是否比建立索引后的查詢時(shí)間要長(zhǎng)或者短。如果是長(zhǎng)的話,則說(shuō)明有建立索引的必要。但是如果沒(méi)有的話,則說(shuō)明還是全表掃描速度來(lái)的快。此時(shí)也就沒(méi)有必要建立索引了。
總之,在考慮是否該為表建立索引時(shí),一般來(lái)說(shuō)小表沒(méi)有建立索引的必要。而對(duì)于打表的話,則需要進(jìn)行實(shí)際情況實(shí)際分析。簡(jiǎn)單一點(diǎn)的,可以根據(jù)大致的比率來(lái)確定。如果要精確一點(diǎn)的,則可以進(jìn)行全表掃描性能分析,以判斷建立索引后是否真的如預(yù)期那樣改善了數(shù)據(jù)庫(kù)性能。
二、 根據(jù)列的特征來(lái)創(chuàng)建索引。
列的特點(diǎn)不同,索引創(chuàng)建的效果也不同。數(shù)據(jù)庫(kù)管理員需要了解為哪些列創(chuàng)建索引可以起到事倍功半的效果。同時(shí)也需要了解為哪些列創(chuàng)建索引反而起到的是事倍功半的效果。這有利于他們了解到底給為怎么樣的字段建立索引。
根據(jù)筆者的經(jīng)驗(yàn),往往為如下特征的列創(chuàng)建索引能夠起到比較明顯的效果。如對(duì)于一些重復(fù)內(nèi)容比較少的列,特別是對(duì)于那些定義了唯一約束的列。在這些列上建立索引,往往可以起到非常不錯(cuò)的效果。如對(duì)于一些null值的列與非Null值的列混合情況下,如果用戶需要經(jīng)常查詢所有的非Null值記錄的列,則更好為其設(shè)置索引。如果經(jīng)常需要多表連接查詢,在用與連接的列上設(shè)置索引可以達(dá)到事半功倍的效果。
可見(jiàn),索引設(shè)置的是否恰當(dāng),不僅跟數(shù)據(jù)庫(kù)設(shè)計(jì)架構(gòu)有關(guān),而且還跟企業(yè)的經(jīng)濟(jì)業(yè)務(wù)相關(guān)。為此,對(duì)于一些套裝軟件,雖然一開(kāi)始數(shù)據(jù)庫(kù)管理員已經(jīng)做了索引的優(yōu)化工作。但是隨著后來(lái)經(jīng)濟(jì)數(shù)據(jù)的增加,這個(gè)索引的效果會(huì)越來(lái)越打折扣。這主要是因?yàn)橛涗浀谋砘绊懙搅怂饕齼?yōu)化的效果。所以筆者建議各位數(shù)據(jù)庫(kù)管理員,即使采用的是大牌軟件公司的套裝軟件,也需要隔一段時(shí)間,如一年,對(duì)數(shù)據(jù)庫(kù)的索引進(jìn)行優(yōu)化。該去掉的去掉,該調(diào)整的調(diào)整,以提高數(shù)據(jù)庫(kù)的性能。
如在數(shù)據(jù)庫(kù)中有一張表是用來(lái)保存用戶信息的。其中有個(gè)字段身份證號(hào)碼,這是一個(gè)唯一的字段。在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),給這個(gè)字段創(chuàng)建了索引。但是當(dāng)這個(gè)數(shù)據(jù)庫(kù)投入使用之后,用戶不怎么輸入用戶的身份證號(hào)碼。而且平時(shí)也基本不按這個(gè)號(hào)碼來(lái)進(jìn)行查詢。當(dāng)記錄月來(lái)月多時(shí),這個(gè)身份證號(hào)碼上的索引字段不但不能夠改善數(shù)據(jù)庫(kù)的查詢性能,反而成了雞肋。對(duì)于這些有很多NULL值的列,而且不會(huì)經(jīng)常查詢所有的非NULL值記錄的列,數(shù)據(jù)庫(kù)管理員要下決心,即使清除這些列上的索引。
所以說(shuō)索引的優(yōu)化與調(diào)整是一個(gè)動(dòng)態(tài)的過(guò)程,并不是說(shuō)數(shù)據(jù)庫(kù)設(shè)計(jì)好之后就不需要經(jīng)過(guò)調(diào)整。數(shù)據(jù)庫(kù)管理員往往需要根據(jù)記錄的變化情況,來(lái)進(jìn)行適當(dāng)?shù)淖兏?。以提高索引的效果?/p>
三、 在一個(gè)表上創(chuàng)建多少索引合適?
雖然說(shuō),在表上創(chuàng)建索引的數(shù)量沒(méi)有限制,但是決不是越多越好。也就是說(shuō),在創(chuàng)建索引這項(xiàng)事情上,1+1〉2往往不成立。有時(shí)候,創(chuàng)建索引越多,其可能會(huì)得到適得其反的效果。那么在一個(gè)表上,到底給創(chuàng)建多少索引合適呢?這個(gè)沒(méi)有一個(gè)明確的標(biāo)準(zhǔn)。而是需要數(shù)據(jù)庫(kù)管理員根據(jù)實(shí)際的用途以及數(shù)據(jù)庫(kù)中記錄的情況,來(lái)進(jìn)行判斷。
通常來(lái)說(shuō),表的索引越多,其查詢的速度也就越快。但是,表的更新速度則會(huì)降低。這主要是因?yàn)楸淼母?如往表中插入一條記錄)速度,反而隨著索引的增加而增加。這主要是因?yàn)?,在更新記錄的同時(shí)需要更新相關(guān)的索引信息。為此,到底在表中創(chuàng)建多少索引合適,就需要在這個(gè)更新速度與查詢速度之間取得一個(gè)均衡點(diǎn)。如對(duì)于一些數(shù)據(jù)倉(cāng)庫(kù)或者決策型數(shù)據(jù)庫(kù)系統(tǒng),其主要用來(lái)進(jìn)行查詢。相關(guān)的記錄往往是在數(shù)據(jù)庫(kù)初始化的時(shí)候倒入。此時(shí),設(shè)置的索引多一點(diǎn),可以提高數(shù)據(jù)庫(kù)的查詢性能。同時(shí)因?yàn)橛涗洸辉趺锤?,所以索引比較多的情況下,也不會(huì)影響到更新的速度。即使在起初的時(shí)候需要導(dǎo)入大量的數(shù)據(jù),此時(shí)也可以先將索引禁用掉。等到數(shù)據(jù)導(dǎo)入完畢后,再啟用索引。可以通過(guò)這種方式來(lái)減少索引對(duì)數(shù)據(jù)更新的影響。相反,如果那些表中經(jīng)常需要更新記錄,如一些事務(wù)型的應(yīng)用系統(tǒng),數(shù)據(jù)更新操作是家常便飯的事情。此時(shí)如果在一張表中建立過(guò)多的索引,則會(huì)影響到更新的速度。由于更新操作比較頻繁,所以對(duì)其的負(fù)面影響,要比查詢效率提升要大的多。此時(shí)就需要限制索引的數(shù)量,只在一些必要的字段上建立索引。
筆者在平時(shí)數(shù)據(jù)庫(kù)優(yōu)化時(shí),往往會(huì)根據(jù)這些表的用途來(lái)為列設(shè)置索引??梢圆樵兿嚓P(guān)的動(dòng)態(tài)視圖,看看對(duì)于這張表的操作,是更新操作(包括更新、刪除、插入等等)占的比例大,還是查詢操作占的比例大。當(dāng)過(guò)多的索引已經(jīng)影響到更新操作的速度時(shí),則數(shù)據(jù)庫(kù)管理員就需要先禁用某些索引,以提高數(shù)據(jù)庫(kù)的性能。
總之,在適當(dāng)?shù)谋?、適當(dāng)?shù)牧猩辖⑦m當(dāng)?shù)乃饕?。這一句話包含的意思有很多,以上內(nèi)容只是一部分內(nèi)容。俗話說(shuō),師傅領(lǐng)進(jìn)門(mén),修行靠自身。筆者在這里指能夠點(diǎn)到為止。一些具體的索引優(yōu)化內(nèi)容還是需要各位讀者在日常工作中去體會(huì)與總結(jié)
Oracle OCP是什么啊?
OCP全稱為Oracle認(rèn)證數(shù)據(jù)庫(kù)專家,是Oracle公司的Oracle數(shù)據(jù)庫(kù) DBA認(rèn)證課程,目前Oracle全世界的數(shù)據(jù)庫(kù)市場(chǎng)份額在50%以上,在中國(guó)的客戶更有中國(guó)移動(dòng)、中國(guó)電信、阿里巴巴、騰訊等中國(guó)絕大多數(shù)的大型企業(yè)。這些企業(yè)都將是Oracle認(rèn)證數(shù)據(jù)庫(kù)專家的雇主,更重要的是OCP是開(kāi)啟Oracle所有產(chǎn)品線的鑰匙,Oracle還有ERP、中間件等更多的高端產(chǎn)品,都可以從OCP開(kāi)始學(xué)習(xí)和熟悉。一個(gè)OCP工程師不僅僅可以從事DBA,還可以進(jìn)一步進(jìn)行學(xué)習(xí)成為ERP實(shí)施、中間件管理、BI(商業(yè)智能)等企業(yè)更高薪酬的IT類專家。 OCP教學(xué)目標(biāo): 核心課程包括Oracle10g構(gòu)架介紹、Oracle10g數(shù)據(jù)庫(kù)基本操作與設(shè)置、創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用、數(shù)據(jù)庫(kù)安全管理、數(shù)據(jù)庫(kù)備份與恢復(fù)、性能優(yōu)化與調(diào)整等。 ◆掌握SQL語(yǔ)言,了解 SQL/PL語(yǔ)言 ◆掌握建立Oracle應(yīng)用的方法 ◆掌握Oracle10g的體系結(jié)構(gòu)核心原理 ◆掌握Oracle10g數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì) ◆掌握Oracle10g數(shù)據(jù)庫(kù)安全配置和管理 ◆掌握Oracle10g數(shù)據(jù)庫(kù)邏輯和物理備份恢復(fù)方法 ◆掌握Oracle10g數(shù)據(jù)庫(kù)的出錯(cuò)調(diào)試技術(shù) ◆掌握Oracle10g數(shù)據(jù)庫(kù)的RMAN恢復(fù)技術(shù) Oracle 10g OCP官方課程列表: Oracle Database 10g: SQL Fundamentals Oracle Database 10g: Administration Workshop I Oracle Database 10g: Administration Workshop II Oracle 考試 以下是考OCA的認(rèn)證條件 (以下是OCA的兩門(mén)考試科目) 現(xiàn)在OCA認(rèn)證版本已經(jīng)升級(jí)到10g考試科目為: Oracle Database 10g: SQL Fundamentals 考試代碼:1Z0-047 考試費(fèi)用:$125 Oracle Database 10g: Administration Workshop I 考試代碼:1Z0-042 考試費(fèi)用:$125 要獲得OCA證書(shū),只需要在Pearson vue考試中心通過(guò)考試就可以獲得Oracle公司發(fā)放的OCA認(rèn)證??荚囐M(fèi)用為$125每門(mén)。 以下是考OCP的認(rèn)證條件 (以下是OCP的考試科目) 現(xiàn)在OCP認(rèn)證版本已經(jīng)升級(jí)到10g考試科目為: Oracle Database 10g: Administration Workshop II 考試代碼:1Z0-043 考試費(fèi)用:$125 要獲得Oracle10g OCP認(rèn)證, 要求在OCP考試前必須參加一門(mén)Oracle大學(xué)的原廠課程培訓(xùn), 即Oracle Database 10g: Administration Workshop I 或Oracle Database 10g: Administration Workshop II中的任何一門(mén)課程。否則將不能得到OCP10g的證書(shū)。譽(yù)天OCP入門(mén)課程為 007,047是針對(duì)有基礎(chǔ)的ORACLE在職人員。 OCP 10g 考試科目: 1Z0-042
安裝和配置 Oracle Database 10g
監(jiān)控和維護(hù) Oracle Database 10g,并排除 Oracle Database 10g 中的故障
為 Oracle Database 10g 配置 Oracle Net Services;Oracle Database 10g 的備份和恢復(fù);在Oracle
Database 10g 中創(chuàng)建和管理用戶賬戶
1Z0-043
使用 RMAN 創(chuàng)建和管理備份集和映像副本,將數(shù)據(jù)庫(kù)恢復(fù)到過(guò)去某一時(shí)刻的狀態(tài)
使用 Oracle 閃回技術(shù)恢復(fù)數(shù)據(jù)庫(kù);檢測(cè)塊損壞情況并采取相應(yīng)的措施修復(fù)損壞的塊
使用各種數(shù)據(jù)庫(kù) Advisor 來(lái)監(jiān)控和提高數(shù)據(jù)庫(kù)的性能;使用資源管理器來(lái)控制數(shù)據(jù)庫(kù)資源的使用情況;
使用調(diào)度程序來(lái)簡(jiǎn)化管理任務(wù);提高監(jiān)聽(tīng)程序的安全性;
復(fù)查數(shù)據(jù)庫(kù)日志文件以便進(jìn)行診斷;為數(shù)據(jù)庫(kù)和單獨(dú)的會(huì)話自定義基于語(yǔ)言的行為
1Z0-047
介紹ORACLE編程環(huán)境和SQL、PL/SQL;編寫(xiě)基本的SQL SELECT語(yǔ)句;
數(shù)據(jù)的限制和排序;單行功能;從多個(gè)數(shù)據(jù)庫(kù)顯示數(shù)據(jù);
使用組合函數(shù)整合數(shù)據(jù);子查詢;用iSQL*Plus產(chǎn)生可讀的輸出;
數(shù)據(jù)管理;表的生成與管理;包含限制條件;生成視圖;
生成其他數(shù)據(jù)庫(kù)對(duì)象;控制用戶的訪問(wèn)定義和描述垃圾收集,
安全性和Java虛擬機(jī) (JVM);句的基本語(yǔ)法;
書(shū)寫(xiě)格式以及一些基本的運(yùn)算,如算術(shù)運(yùn)算、字符串連接等。
隨著時(shí)間推移,OCP認(rèn)證將逐步升級(jí)到11g版本,雖然Oracle公司沒(méi)有規(guī)定OCP證書(shū)的有效期,但是隨著Oracle版本的不斷升級(jí),升級(jí)考試就尤為重要。 預(yù)計(jì)在2023年后證書(shū)會(huì)升級(jí)到11g版本,現(xiàn)在11g考試科目為: Oracle Database 11g: SQL Fundamentals 考試代碼: 1Z0-057 考試費(fèi)用:$125 Oracle Database 11g: Administration Workshop I 考試代碼: 1Z0-052 考試費(fèi)用:$125 Oracle Database 11g: Administration Workshop II 考試代碼:1Z0-053 考試費(fèi)用:$125 已經(jīng)擁有9i或10g認(rèn)證的只需參加一門(mén)升級(jí)考試即可獲得最新版本的OCP證書(shū)。 9i升級(jí)10g的考試是 1Z0-040 考試費(fèi)用:$g升級(jí)11g的考試是 1Z0-050 考試費(fèi)用:$125 ORACLE認(rèn)證體系與課程 Oracle 10g認(rèn)證體系結(jié)構(gòu)圖: 認(rèn)證種類 需要參加培訓(xùn)的相關(guān)課程 考試代碼
OCA Oracle Database 10g: Administration Workshop I 042
OCA/或 Oracle Database 10g: SQL Fundamentals
Oracle Database 10g: Program with PL/SQL
Oracle Database 10g: Advanced PL/SQL
Oracle Database 10g: SQL Tuning Workshop Oracle Database: SQL Certified Expert
007
OCP Oracle Database 10g: SQL Fundamentals
Oracle Database 10g: Administration Workshop I
Oracle Database 10g: Administration Workshop II 007
042
043
OCM OCP related courses and plus,
Oracle Database 10g: SQL Tuning Workshop
Oracle Database 10g: Security
Enterprise DBA Part 1B: Backup and Recovery
Oracle Database 10g: Data Guard Administration
Oracle Database 10g: RAC for Administrators
Oracle Database 10g: Implement Streams Oracle Database 10g Administrator
Certified Master Exam
Oracle授權(quán)培訓(xùn)考試中心年最新ORACLE官方授權(quán)培訓(xùn)考試中心查詢網(wǎng)址;參見(jiàn)ORACLE官網(wǎng)或者擴(kuò)展閱讀 考試:由各個(gè)授權(quán)考試中心處理在普爾文授權(quán)考場(chǎng)考試。 OCA考試:在VUE/普爾文考試中心考試。 OCP考試:在Oracle授權(quán)考場(chǎng)考試。 OCM考試:在北京上海Oracle大學(xué)考試。
編輯本段OCP認(rèn)證課程大綱
課程大綱: 一、 Oracle Database 10g: SQL Fundamentals Oracle數(shù)據(jù)庫(kù)10g SQL語(yǔ)言基礎(chǔ) select、DML、DDL語(yǔ)法及技巧 ”表”結(jié)構(gòu):(select * from (select * from emp)); select 結(jié)構(gòu)及注意事項(xiàng)(select 1,’a’,ename from emp)運(yùn)行過(guò)程 排序,distinct 單行函數(shù)(工作中常用技巧及案例) 子查選(關(guān)聯(lián)子查詢 和 非關(guān)聯(lián)子查詢 運(yùn)行原理和區(qū)別;優(yōu)化) 表連接(四種類型),外連接 not in | not exists | 等值鏈接 區(qū)別及抉擇 聚合函數(shù)(運(yùn)行過(guò)程) -聚合函數(shù)和外連接使用時(shí)的注意事項(xiàng) -分組 -組篩選+子查詢 綜合:討論下面SQL執(zhí)行順序,為真正看懂執(zhí)行計(jì)劃做好準(zhǔn)備 教學(xué)目標(biāo):讓學(xué)員熟練掌握select、dml、ddl,掌握select、dml、ddl各種語(yǔ)句的內(nèi)部處理流程,為以后的sql調(diào)優(yōu)打下堅(jiān)實(shí)的基礎(chǔ)。 二、Oracle Database 10g: Administration Workshop I Oracle10g 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)(I) 1. 在Linux平臺(tái)安裝Oracle Database 10g 數(shù)據(jù)庫(kù)軟件 確定系統(tǒng)需求 使用Optimal Flexible Architecture (OFA) 配置Shell環(huán)境變量 設(shè)置Linux內(nèi)核參數(shù) 使用Oracle Universal Installer 安裝軟件 Oracle對(duì)Linux發(fā)布版的認(rèn)證 2. 創(chuàng)建Oracle 數(shù)據(jù)庫(kù) Oracle 數(shù)據(jù)庫(kù)的體系結(jié)構(gòu) 例程體系結(jié)構(gòu) 使用管理框架 使用Database Creation Assistant(DBCA)創(chuàng)建數(shù)據(jù)庫(kù) 配置數(shù)據(jù)庫(kù) 撤消數(shù)據(jù)庫(kù) 管理模板 3. 數(shù)據(jù)庫(kù)界面 使用SQL *Plus和iSQL *Plus訪問(wèn)數(shù)據(jù)庫(kù) 使用結(jié)構(gòu)化查詢語(yǔ)言(SQL) 使用過(guò)程語(yǔ)言/結(jié)構(gòu)化查詢語(yǔ)言(PL/SQL) 使用Oracle C++ 調(diào)用接口(OCCI) 4. 控制數(shù)據(jù)庫(kù) 啟動(dòng)和停止iSQL *Plus 啟動(dòng)和停止Enterprise Manager Database Control 啟動(dòng)和停止Oracle Listener 啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù) 處理參數(shù)文件 5. 存儲(chǔ)結(jié)構(gòu) 定義表空間和數(shù)據(jù)文件的用途 創(chuàng)建表空間 管理表空間 獲取表空間信息 使用EM來(lái)查看表空間視圖 使用Oracle Managed Files (OMF) 創(chuàng)建和管理表空間 6.管理用戶 創(chuàng)建和管理數(shù)據(jù)庫(kù)用戶賬戶 創(chuàng)建和管理角色 創(chuàng)建和引用特權(quán) 控制用戶對(duì)資源的使用 7. 管理模式對(duì)象 創(chuàng)建和修改表 定義約束條件 查看表屬性 查看表內(nèi)容 創(chuàng)建索引和視圖 8. 管理數(shù)據(jù) 通過(guò)SQL語(yǔ)句來(lái)處理數(shù)據(jù) 使用Data Pump導(dǎo)入 使用Data Pump導(dǎo)出 使用SQL Loader裝入數(shù)據(jù) 9. PL/SQL 識(shí)別PL/SQL(Procedural Language SQL)對(duì)象 了解觸發(fā)器和觸發(fā)事件 影響PL/SQL 性能的配置選項(xiàng) 10. Oracle 數(shù)據(jù)庫(kù)安全 應(yīng)用最少權(quán)限原則 管理默認(rèn)用戶賬戶 實(shí)施標(biāo)準(zhǔn)口令保護(hù)功能 跟蹤數(shù)據(jù)庫(kù)活動(dòng) 11.Oracle網(wǎng)絡(luò)服務(wù) (Oracle Net Services) 使用Database Control創(chuàng)建附加的監(jiān)聽(tīng)器 使用Oracle Net Manager 創(chuàng)建和配置監(jiān)聽(tīng)程序 使用監(jiān)聽(tīng)程序控制實(shí)用程序來(lái)控制Oracle Net Listener 使用Oracle Net Manager 配置客戶及中間層連接 使用TNSPING 測(cè)試Oracle Net 的連接性 Oracle Nat服務(wù) 創(chuàng)建Oracle Net 名稱解析方法 12. Oracle Shared Server 了解何時(shí)使用Oracle 共享服務(wù)器 配置 Oracle Shared Server 監(jiān)控 Oracle Shared Server Oracle Shared Server體系結(jié)構(gòu) 13. 性能監(jiān)控 排除無(wú)效和不可用的對(duì)象中的故障 收集優(yōu)化程序統(tǒng)計(jì)數(shù)據(jù) 查看性能標(biāo)準(zhǔn) 對(duì)性能問(wèn)題做出反應(yīng) 14. 前瞻性維護(hù) 設(shè)置警告和重要預(yù)警閾值 收集和使用基準(zhǔn)指標(biāo) 優(yōu)化和診斷Advisor 自動(dòng)數(shù)據(jù)庫(kù)診斷監(jiān)控程序(ADDM) 管理自動(dòng)工作量資料檔案庫(kù) 15.撤消管理 監(jiān)控和管理撤消 配置撤消保留 保障撤消保留 使用Undo Advisor 撤消表空間大小 16. 監(jiān)控和解決鎖沖突 檢測(cè)和解決鎖沖突 管理死鎖 處理事務(wù)與鎖之間的關(guān)系 Oracle數(shù)據(jù)庫(kù)的內(nèi)鎖模式
ocp全稱Oracle Certified Professional,是Oracle數(shù)據(jù)庫(kù)管理員的中級(jí)認(rèn)證,也是DBA行業(yè)最普遍的入門(mén)級(jí)證書(shū)。更高級(jí)別的則是ocm,中國(guó)13億人,目前只有幾百個(gè)ocm,你想想含金量多大。西南地區(qū)的話,推薦去重慶江北O(jiān)racle看看,挺不錯(cuò)的。
這個(gè)是oracle的認(rèn)證,按等級(jí)依次分為OCA,OCP,OCM
OCA——認(rèn)證專員
OCP——認(rèn)證專家
OCM——認(rèn)證大師
OCP認(rèn)證可以表明你對(duì)某一職位及相關(guān)的Oracle產(chǎn)品有著深刻的理解。成為一個(gè)OCP認(rèn)證專家可以幫助你被更多的雇主注意到,并且增加你獲得IT業(yè)更具挑戰(zhàn)性機(jī)遇的機(jī)會(huì)
OCP是開(kāi)啟Oracle所有產(chǎn)品線的鑰匙,Oracle還有ERP、中間件等更多的高端產(chǎn)品,都可以從OCP開(kāi)始學(xué)習(xí)和熟悉。一個(gè)OCP認(rèn)證工程師不僅僅可以從事DBA,還可以進(jìn)一步進(jìn)行學(xué)習(xí)成為ERP實(shí)施、中間件管理、BI(商業(yè)智能)等企業(yè)更高薪酬的IT類專家。
更多問(wèn)題可以到東方瑞通網(wǎng)站上了解
oracle證書(shū)上分為三類:OCA證書(shū)、OCP證書(shū)、OCM證書(shū)
Oracle數(shù)據(jù)庫(kù)基本知識(shí)
Oracle數(shù)據(jù)庫(kù)基本知識(shí)
Oracle Database,又名OracleRDBMS,或簡(jiǎn)稱Oracle。是甲骨文公司的一款關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。本文為大家分享的是Oracle數(shù)據(jù)庫(kù)的基本知識(shí),希望對(duì)大家有所幫助!
它是在數(shù)據(jù)庫(kù)領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品。可以說(shuō)Oracle數(shù)據(jù)庫(kù)系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好的適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)解決方案。
介紹
ORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前更流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類型的機(jī)器上使用它。
Oracle數(shù)據(jù)庫(kù)最新版本為OracleDatabase 12c。Oracle數(shù)據(jù)庫(kù)12c引入了一個(gè)新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫(kù)云。此外,一些創(chuàng)新特性可更大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個(gè)數(shù)據(jù)庫(kù),而Automatic Data Optimization和Heat Map能以更高的密度壓縮數(shù)據(jù)和對(duì)數(shù)據(jù)分層。這些獨(dú)一無(wú)二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強(qiáng),使得Oracle數(shù)據(jù)庫(kù)12c 成為私有云和公有云部署的理想平臺(tái)。
就業(yè)前景
從就業(yè)與擇業(yè)的角度來(lái)講,計(jì)算機(jī)相關(guān)專業(yè)的大學(xué)生從事oracle方面的技術(shù)是職業(yè)發(fā)展中的更佳選擇。
其一、就業(yè)面廣:ORACLE幫助拓展技術(shù)人員擇業(yè)的廣度,全球前100強(qiáng)企業(yè)99家都在使用ORACLE相關(guān)技術(shù),中國(guó)機(jī)構(gòu),大中型企事業(yè)單位都能有ORACLE技術(shù)的工程師崗位,大學(xué)生在校期間興趣廣泛,每個(gè)人興趣特長(zhǎng)各異,不論你想進(jìn)入金融行業(yè)還是電信行業(yè)或者機(jī)構(gòu),ORACLE都能夠在你的職業(yè)發(fā)展中給你最強(qiáng)有力的支撐,成為你最貼身的金飯碗。
其二、技術(shù)層次深:如果期望進(jìn)入IT服務(wù)或者產(chǎn)品公司,Oracle技術(shù)能夠幫助提高就業(yè)的深度。Oracle技術(shù)已經(jīng)成為全球每個(gè)IT公司必選的軟件技術(shù)之一,熟練掌握Oracle技術(shù)能夠?yàn)閺臉I(yè)人員帶來(lái)技術(shù)應(yīng)用上的優(yōu)勢(shì),同時(shí)為IT技術(shù)的深入應(yīng)用起到非常關(guān)鍵的作用。掌握 Oracle技術(shù),是IT從業(yè)人員了解全面信息化整體解決方案的基礎(chǔ)。
其三、職業(yè)方向多:Oracle數(shù)據(jù)庫(kù)管理方向、Oracle開(kāi)發(fā)及系統(tǒng)架構(gòu)方向、Oracle數(shù)據(jù)建模數(shù)據(jù)倉(cāng)庫(kù)等方向。
Oracle數(shù)據(jù)庫(kù)漏洞分析:無(wú)需用戶名和密碼進(jìn)入你的數(shù)據(jù)庫(kù)
一般性的數(shù)據(jù)庫(kù)漏洞,都是在成功連接或登錄數(shù)據(jù)庫(kù)后實(shí)現(xiàn)入侵;本文介紹兩個(gè)在2023年暴露的Oracle漏洞,通過(guò)這兩種漏洞的結(jié)合,可以在不掌握用戶名/密碼的情況下入侵Oracle,從而完成對(duì)數(shù)據(jù)的竊取或者破壞。這兩個(gè)漏洞就是CVE和CVE。
引言
國(guó)內(nèi)外很多重要的系統(tǒng)都采用Oracle作為數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù);在Oracle中存儲(chǔ)著企業(yè)或大量敏感的信息,在金錢(qián)或政治的誘導(dǎo)下,內(nèi)外部黑客會(huì)想法利用管理、網(wǎng)絡(luò)、主機(jī)或數(shù)據(jù)庫(kù)的自身漏洞嘗試入侵到數(shù)據(jù)庫(kù)中,以達(dá)到自身的目的。
本文的作者通過(guò)對(duì)Oracle倆種漏洞的組合研究,設(shè)計(jì)了一套在不掌握用戶名/密碼的方式入侵到Oracle中;這種方法,比傳統(tǒng)的需要登錄到數(shù)據(jù)庫(kù)中的入侵方法,具有更大的安全隱患和破壞性。
本文希望通過(guò)對(duì)這兩個(gè)漏洞和攻擊方法的介紹,能夠引起相關(guān)人員的重視,完善對(duì)數(shù)據(jù)庫(kù)安全的措施。
1、概要介紹
本文提供的方法是基于漏洞CVE和CVE對(duì)oracle數(shù)據(jù)庫(kù)的攻擊測(cè)試的方法。
CVE漏洞是Oracle允許攻擊者在不提供用戶名/密碼的’情況下,向遠(yuǎn)程“TNS Listener”組件處理的數(shù)據(jù)投毒的漏洞。攻擊者可利用此漏洞將數(shù)據(jù)庫(kù)服務(wù)器的合法“TNS Listener”組件中的數(shù)據(jù)轉(zhuǎn)向到攻擊者控制的系統(tǒng),導(dǎo)致控制遠(yuǎn)程組件的數(shù)據(jù)庫(kù)實(shí)例,造成組件和合法數(shù)據(jù)庫(kù)之間的中間人攻擊、會(huì)話劫持或拒絕服務(wù)攻擊。
CVE漏洞是Oracle Database 10g/11g身份驗(yàn)證協(xié)議實(shí)現(xiàn)中存在一個(gè)設(shè)計(jì)缺陷,攻擊者無(wú)需認(rèn)證即可遠(yuǎn)程獲取數(shù)據(jù)庫(kù)用戶密碼哈希相關(guān)數(shù)據(jù),從而可以離線暴力破解用戶密碼,進(jìn)一步控制數(shù)據(jù)庫(kù)系統(tǒng)。
我們通過(guò)如下的步驟和過(guò)程可以實(shí)現(xiàn)對(duì)Oracle的入侵:
(1)利用CVE進(jìn)行TNS劫持,在監(jiān)聽(tīng)下利用遠(yuǎn)程注冊(cè),注冊(cè)同名數(shù)據(jù)庫(kù)實(shí)例;
(2)新登陸的用戶,在TNS的負(fù)載均衡策略下,有可能流量登錄到偽造的監(jiān)聽(tīng)服務(wù)上;
(3)該監(jiān)聽(tīng)服務(wù)對(duì)用戶的登陸過(guò)程進(jìn)行監(jiān)控,并將相關(guān)數(shù)據(jù)流量轉(zhuǎn)發(fā)到真實(shí)的數(shù)據(jù)庫(kù)上;
(4)利用CVE獲得通訊過(guò)程中的認(rèn)證相關(guān)信息;
(5)對(duì)認(rèn)證相關(guān)信息進(jìn)行離線的暴力破解,獲得登陸的密碼;
(6)試用破解的用戶名/密碼登陸Oracle,完成對(duì)Oracle中數(shù)據(jù)的訪問(wèn);
2、通過(guò)CVE進(jìn)行TNS劫持
該漏洞存在于Oracle的所有版本,并且Oracle至今僅是發(fā)布了警告性通知,并未提供解決方案。
要想利用CVE漏洞做TNS劫持,首先需要了解TNS機(jī)制。如下圖所示oracle 通過(guò)在本地解析網(wǎng)絡(luò)服務(wù)名到目標(biāo)主機(jī)IP地址,服務(wù)端口號(hào),目標(biāo)數(shù)據(jù)庫(kù)名,把這些信息發(fā)送到oracle服務(wù)器端監(jiān)聽(tīng)程序,最后再由監(jiān)聽(tīng)程序遞送DBMS。
其中關(guān)鍵點(diǎn)在于監(jiān)聽(tīng)會(huì)按照目標(biāo)數(shù)據(jù)庫(kù)名遞送到名稱正確的數(shù)據(jù)庫(kù)。那么如果一個(gè)監(jiān)聽(tīng)下有2個(gè)同名數(shù)據(jù)庫(kù)。監(jiān)聽(tīng)將自動(dòng)按照負(fù)載均衡把這次訪問(wèn)發(fā)送到負(fù)載低的數(shù)據(jù)庫(kù)上,進(jìn)行連接訪問(wèn)。數(shù)據(jù)庫(kù)注冊(cè)到監(jiān)聽(tīng)的方法就決定了,能否同時(shí)注冊(cè)同名數(shù)據(jù)庫(kù)在同一個(gè)監(jiān)聽(tīng)下。注冊(cè)方式分為本地注冊(cè)和遠(yuǎn)程注冊(cè),通過(guò)修改參數(shù)可以調(diào)整為遠(yuǎn)程注冊(cè)。
下面是一段可用的TNS劫持的過(guò)程:
.在劫持機(jī)上創(chuàng)建一個(gè)和目標(biāo)數(shù)據(jù)庫(kù)實(shí)例同名的數(shù)據(jù)庫(kù)實(shí)例。
.在劫持機(jī)上修改 tnsnames.ora 文件
添加
listener_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=目標(biāo)機(jī)器IP)(PORT=目標(biāo)機(jī)器端口)))
.在劫持機(jī)上用SQL*Plus 順序執(zhí)行下面步驟。
.$ sqlplus / as sysdba
. SQL> ALTER SYSTEM SETREMOTE_LISTENER=’LISTENER_NAME’;
. SQL> ALTER SYSTEM REGISTER;
.多個(gè)客戶端,向數(shù)據(jù)庫(kù)發(fā)起登錄。會(huì)劫持到一部分客戶端的登錄信息。
最終達(dá)到效果如下圖所示:
按照猜想同一個(gè)監(jiān)聽(tīng)下有2個(gè)同名實(shí)例。客戶端訪問(wèn)監(jiān)聽(tīng),監(jiān)聽(tīng)按照客戶端中的數(shù)據(jù)庫(kù)名信息分配數(shù)據(jù)庫(kù),由于監(jiān)聽(tīng)下有2個(gè)同名數(shù)據(jù)庫(kù),客戶端鏈接很可能會(huì)被分配到劫持者的數(shù)據(jù)庫(kù)實(shí)例下,再通過(guò)配置劫持者的本地監(jiān)聽(tīng)把客戶端請(qǐng)求指回原數(shù)據(jù)庫(kù)。結(jié)構(gòu)圖如下:
測(cè)試客戶端鏈接196次。目標(biāo)數(shù)據(jù)庫(kù)實(shí)例獲得113次,劫持?jǐn)?shù)據(jù)庫(kù)實(shí)例獲得83次基本滿足負(fù)載均衡的假設(shè)。(注上面實(shí)例是local server 下面實(shí)例是 remote server)
通過(guò)以上方式我們可以截獲約一半左右客戶端發(fā)送到服務(wù)器的合法鏈接。其中獲得了服務(wù)器IP、端口號(hào)、數(shù)據(jù)庫(kù)位置、實(shí)例名、登錄用戶名等一系列明文信息和4組密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。
3、通過(guò)CVE進(jìn)行密碼破解
CVE受影響的數(shù)據(jù)庫(kù)版本有11.2.0.3,11.2.0.2,11.1.0.7,有使用了SHA-1加密算法的10.2.0.5和10.2.0.4,還有使用了SHA-1的10.2.0.3(運(yùn)行在z/OS下)版本。
雖然這個(gè)漏洞在11.2.0.3中已經(jīng)解決,但是僅僅數(shù)據(jù)庫(kù)客戶端和服務(wù)器都升級(jí)到11.2.0.3并且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。
正如CVE所描述Oracle為了防止第三方通過(guò)網(wǎng)絡(luò)獲取登錄信息包。而對(duì)密碼進(jìn)行了加密處理。本部分只以oracle11.1密碼如何破解為例進(jìn)行說(shuō)明。
在發(fā)起連接之后(oracle牽手完成),客戶端和服務(wù)器經(jīng)過(guò)協(xié)商確定要使用的驗(yàn)證協(xié)議。要完成這個(gè)任務(wù),客戶端首先向數(shù)據(jù)庫(kù)發(fā)送一個(gè)包。包中包含客戶端主要信息和所請(qǐng)求的加密方式。數(shù)據(jù)庫(kù)確認(rèn)加密方式有效后,發(fā)送一個(gè)確認(rèn)服務(wù)包如下圖所示:
在通過(guò)安全網(wǎng)絡(luò)服務(wù)完成任何所要求的協(xié)議之后,數(shù)據(jù)庫(kù)用戶被O3logon(oracle驗(yàn)證方式) 進(jìn)行驗(yàn)證,這個(gè)協(xié)議執(zhí)行一個(gè)序列來(lái)向數(shù)據(jù)庫(kù)證明客戶端擁有密碼。為了避免網(wǎng)絡(luò)第三方截獲到密碼。首先客戶端發(fā)送用戶名到數(shù)據(jù)庫(kù)來(lái)表明用戶身份。數(shù)據(jù)庫(kù)端根據(jù)加密協(xié)議,其中96位的作為數(shù)據(jù)庫(kù)端密鑰,20位的作為偏移量,它對(duì)每個(gè)連接都是不同的。一個(gè)典型的數(shù)據(jù)庫(kù)端發(fā)給客戶端的密鑰如下:
AUTH_SESSKEY…..COCDD89FIGODKWASDF……………………
客戶端根據(jù)加密算法向服務(wù)器端發(fā)送96位的客戶端密鑰和64位的密碼密鑰。服務(wù)器端計(jì)算客戶端傳入的密碼密鑰。如果計(jì)算后密碼密文和數(shù)據(jù)庫(kù)中存儲(chǔ)的16位密碼密文一致則驗(yàn)證通過(guò)。
根據(jù)這個(gè)過(guò)程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA這四個(gè)值是解密的關(guān)鍵。我們把他們按照SHA1,MD5,AES192進(jìn)行一系列處理。最終通過(guò)數(shù)據(jù)字典碰撞得到密碼明文。
下面這段網(wǎng)上公布的一段示例代碼,這段代碼與筆者的思路不完全相同,但也能大概地說(shuō)明這個(gè)漏洞的攻擊過(guò)程:
import hashlib
from Crypto.Cipher import AES
def decrypt(session,salt,password):
pass_hash= hashlib.sha1(password+salt)
key =pass_hash.digest() + ‘\x00\x00\x00\x00’
decryptor= AES.new(key,AES.MODE_CBC)
plain =decryptor.decrypt(session)
returnplain
session_hex =’EA2023CB8B46EC68BDC161F8CA170363C1E6F57F3EBC6435F541A8239B6DBA16EAABAE78767′
salt_hex = ‘A7193E546377EC56639E’
passwords =
for password in passwords:
session_id= decrypt(session_hex.decode(‘hex’),salt_hex.decode(‘hex’),password)
print’Decrypted session_id for password “%s” is %s’ %(password,session_id.encode(‘hex’))
ifsession_id == ‘\x08\x08\x08\x08\x08\x08\x08\x08’:
print’PASSWORD IS “%s”‘ % password
break
4、建議的預(yù)防措施
根據(jù)以上兩段分析,我們可以有如下的預(yù)防措施:
(1)在條件許可的情況下,對(duì)Oracle進(jìn)行補(bǔ)丁升級(jí),對(duì)Oracle打cpuoct補(bǔ)丁;注意對(duì)于cpuoct補(bǔ)丁要求服務(wù)器端和應(yīng)用服務(wù)器端同時(shí)升級(jí),否則應(yīng)用系統(tǒng)將無(wú)法訪問(wèn)Oracle;
(2)若無(wú)法對(duì)Oracle升級(jí),要購(gòu)買(mǎi)或安裝具備虛擬補(bǔ)丁功能的數(shù)據(jù)庫(kù)安全產(chǎn)品,防止對(duì)CVE和CVE的利用;
(3)建立足夠強(qiáng)健的口令,不要使用8位以下密碼,或者字典庫(kù)中的口令。
oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì),深入淺出Oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)指南,如何合理創(chuàng)建Oracle數(shù)據(jù)庫(kù)索引的3個(gè)要求,Oracle OCP是什么啊?,Oracle數(shù)據(jù)庫(kù)基本知識(shí)的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
當(dāng)前標(biāo)題:深入淺出Oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)指南(oracle數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì))
本文URL:http://m.5511xx.com/article/coeespe.html


咨詢
建站咨詢
