資料庫引言
① 求資料庫課程設計前言和參考文獻
1.《資料庫原理及應用》 錢雪忠主編 北京郵電大學出版社 2007,8 第二版
2.《sql server 2000數據倉庫與Analysis Services》 Bain T著 中國電力出版社 2003
3.《資料庫技術與聯機分析處理》 王珊主編 北京科學出版社 1998
② Oracle大型資料庫系統的前言
風,緊,
夜,深沉,
劍,已出鞘,
影,飄然前行!
本書的立意和內容
在伺服器領域,IBM p系列伺服器與AIX操作系統毫無疑問是UNIX伺服器領域中的佼佼者,它代表著UNIX深刻的技術內涵和廣泛的用戶基礎。同樣地,Oracle是資料庫領域事實上的市場領導者,眾多IT應用系統採用了Oracle構架,運行Oracle資料庫作為其數據支撐節點。目前Oracle用戶已經可以升級其資料庫到Oracle Database 11g Release 2版本。
實踐上,運行在AIX上的Oracle資料庫系統是諸多大中型系統的典型配置方式——用戶得益於IBM AIX的堅固支撐,受惠於Oracle的可用性保證!
但凡事都有兩面性,AIX是一套復雜的UNIX系統,Oracle則是一種「最難」的資料庫。對於任何用戶而言,了解、熟悉、運用、掌握兩者的平台特徵和工程技術手段,需要進行大量的學習、培訓、實踐以及長時間的磨練!廣大資料庫用戶需要一種快捷的學習路徑以及可參考資料來幫助他們構建、運行、維護乃至優化自己的系統!
本書的立意即在於此!本書以AIX UNIX平台為主線,以其他UNIX系統為參照,描述了資料庫系統Oracle 10g、Oracle 11g的構架方法,說明了該資料庫在AIX平台常用的諸多管理方面,提供了在AIX上實施Oracle集群的環境要素說明和實施方法,分析了伺服器綜合容災的工程手段和技術方法,綜合了在AIX系統上優化Oracle運行環境的諸多做法和要點。最後,本書還以AIX上Sybase ASE資料庫系統為對比,論述了Oracle在AIX上的獨到特徵。
基於上述出發點,本書力爭面向工程實踐,並面向用戶的實際需求展開論述。因此,本書並未刻意在學術上進行高、精、尖的探索,而是力爭將復雜的事情簡單化,把各技術要點以最簡單的形式和大家能了解的方法擺在用戶面前!
本書的讀者群體
本書的目標讀者是那些在UNIX上進行資料庫開發、維護、管理、優化任務和高可用設置的工程技術人員,以及從事於這個尖端行業的人群。
從技術角度看,本書所涉及的內容全部是生產實踐中必要的過程和階段。因此,本書並沒有試圖去描繪一些新鮮熱辣的炒作概念或遙不可及的無用內容,而是作為一種可以放在手邊的技術專著面向大眾,服務於系統用戶95%的日常工作需求。正因如此,本書注重細節描述和過程說明,讀者無須擁有非常深厚的專業技術基礎。
當然,學習的熱情和探索的精神是必不可少的!
本書的內容安排
本書共分為五篇,按照資料庫項目實施中工作內容的不同方向進行了分組,各篇的內容分述如下。
第一篇 構架篇
本篇側重在於系統的構架,以及構架中的相關要素和重點。 第1章 了解伺服器運行環境
本章力圖使讀者站到一個足夠高的層次和高度來看待伺服器技術框架。站得高,則看得必遠!
第2章 管理和維護伺服器設備和服務
Oracle運行在AIX上,Oracle將使用AIX資源、調用AIX服務,受AIX的運行狀態影響。
第3章 管理伺服器存儲
資料庫伺服器的一個典型特徵就是大量使用磁碟空間來存儲資料庫數據。Oracle需要AIX提供的存儲介質來存儲數據。
第4章 構建Oracle環境
Oracle的環境構架相對復雜。用戶需要掌握Oracle系統構架的具體工程細節,並獲得動手能力。
第二篇 管理篇
本篇結合了AIX系統的諸多特點,綜合論述了Oracle在AIX上管理的具體方法和實踐行為規范。 第5章 在AIX中Oracle資料庫管理
日常管理是一個管理員工作的大部分內容。本章描述了常用的管理內容和做法。
第6章 使用ASM跳過AIX卷空間管理
ASM是Oracle提出的存儲管理最新的實施方法。Oracle推薦使用ASM來進行磁碟空間的管理。
第7章 管理AIX下Oracle的空間使用
空間管理是系統管理的重點。Oracle需要各種不同的空間要素,需要管理和維護。
第三篇 災備篇
本篇站在伺服器的層面,綜合講述了在AIX運行Oracle系統所需進行的備份管理工作,以及災難恢復實施方法。 第8章 設計和實施AIX系統備份
伺服器系統的備份工作必須能夠兼顧操作系統、應用系統、資料庫數據備份的各方面。AIX是備份中重要的一環。
第9章 設計Oracle系統備份
Oracle作為資料庫系統,其備份方法和恢復手段與操作系統備份截然不同。按照規范的方法進行備份對恢復有著不言而喻的意義。
續表
第三篇 災備篇
本篇站在伺服器的層面,綜合講述了在AIX運行Oracle系統所需進行的備份管理工作,以及災難恢復實施方法。 第10章 實施Oracle系統備份
工程上實施資料庫備份的方法是百花齊放的。這里討論了若干種具體實施方法和手段。
第11章 恢復崩潰的系統
防患於未然!好的備份系統是經過恢復測試的系統。讓我們看看如何用備份進行系統恢復的!
第四篇 集群篇
在AIX平台上RAC集群是一種廣泛使用的結構。本篇即針對集群展開討論。 第12章 構建AIX下的Oracle集群環境
集群是實現Oracle系統網格與高可用的主要技術手段,尤其在AIX承擔的關鍵業務系統中。
第13章 在AIX中管理Oracle集群環境
集群的管理有其自身特色,包括集群件管理、集群服務的管理。
第五篇 優化篇
好的系統需要進行預先的優化結構設計,並在系統運行中進行漸近的再優化。本篇以項目周期為階段,描述了系統優化的各個過程和方面。 第14章 在AIX上綜合設置Oracle環境
系統在構建時,要綜合考慮可用性和性能之間的關系,並設置和優化系統。
第15章 AIX上Oracle系統的運行優化
在系統運行過程中,應用性能會隨時變化,性能的檢查和優化也需隨時進行。動態地、漸進式地分析與調整也就十分必要。
第六篇 擴展篇
通過與Sybase ASE的對比來了解什麼是Oracle。 第16章 AIX上Oracle與Sybase的比較
Sybase ASE與Oracle同為可在AIX上運行的資料庫系統。兩種產品中各有特點、各有優勢、同樣優秀。
本書從構思到最終完成,歷時兩年時間,其間更改數十稿。單獨講述UNIX不難,單獨講述Oracle不難,但把二者結合起來,站在整個系統的高度來說明問題,卻讓本書作者難以著手——千頭萬緒,該寫的內容太多!
致謝
本書內容來源於實踐,用戶即是最佳的實踐來源。感謝山東海化集團王鳳鳴先生、中國電信青海公司陳宇峰先生、福建公司陳亮先生等人的鼎力支持。本書中若干技術觀點和實踐總結來源於作者為該單位提供資料庫顧問服務的工作現場。感謝他們和作者在工作與技術領域上的不斷探討,這促進了本書內容的不斷完善!
在本書編寫過程中,很多復雜的、結構性的實驗在北京時代朝陽資料庫技術中心Trail實驗室完成。北京時代朝陽資料庫技術中心是一家有著17年企業歷史的資料庫專業技術機構,精於資料庫產品與服務。這里有多樣化的UNIX平台、各種集群構架、不同容災環境等,這為本書所涉及的各項結構性實踐提供了可能。感謝Trail實驗室各位同事的配合。另外,考慮到本書在部分章節上存在一定難度,為保證本書的可讀性,作者也請Trail實驗室中參加Oracle職業/就業課程的若干學員試讀了本書,感謝他們提出的諸多意見!
感謝本書策劃編輯胡辛征先生的熱心鼓勵和積極推動,感謝文字編輯江立女士的細心編審和中肯點評。沒有他們的細致工作和鼓勵,本書不能順利出版。
最後,感謝博文視點以知識傳播的方式對中國IT產業的支持——以其廣博文字選題,以其超然視點出版!
祝博文視點從成功走向輝煌!
本書作者:文平
2009-09-20於北京
目錄第一篇構架篇
第1章了解伺服器運行環境
1.1 AIX:一種成熟的UNIX
1.1.1 AIX系統構成要素
1.1.2登錄AIX系統
1.1.3 RS6000伺服器結構
1.1.4 AIx系統管理界面
1.1.5 AIX中使用的Shell
1.1.6 AJx存儲組織結構
1.1.7 AJx換頁空間(交換區)
1.1.8 AIX文件系統結構
1.1.9 AJx對象數據管理
1.1.10 AIX當前進程運行
1.1.11 AIX用戶訪問過程
1.1.12 AIX各種服務提供
1.1.13 AIX網路通信設置
1.1.14 AIX中的常用操作
1.2 Oracle與AIx系統
1.2.1 Oracle與AIX的角色
1.2.2 Oracle系統典型特徵
1.2.3系統全局區SGA
1.2.4程序全局區PGA
1.2.5 Oracle後台進程
1.2.6 Oracle資料庫物理結構
1.2.7資料庫數據存放
1.2.8資料庫的用戶訪問
第2章管理和維護伺服器設備和服務
2.1管理AIX中的設備
2.1.1 AIX使用設備類型
2.1.2 AIX的設備分層管理
2.1.3 ODM對象資料庫
2.1.4設備的狀態特徵查看
2.1.5設備的配置和檢測
2.1.6設備屬性信息查看
2.1.7創建主機硬體配置檔案
2.2管理AIX中的服務
2.2.1系統資源控制器的啟動
2.2.2系統資源的啟動和關閉
2.2.3系統資源的刷新
2.2.4通常啟動的資源
2.3 AIX系統錯誤處理
2.4 AIX系統硬體診斷
2.5 AIX系統日誌查看
第3章管理伺服器存儲
3.1 AIX存儲基本框架
3.2 AIX的存儲概念要素
3.2.1物理卷和卷組
3.2.2邏輯卷和邏輯分區
3.2.3AIX日誌文件系統
3.2.4文件系統掛載和目錄樹
3.3系統存儲結構的管理
3.3.1系統中的卷組定義信息
3.3.2增加、刪除和設置卷組
3.3.3卷組中物理磁碟的改變
3.3.4卷組重組提高磁碟性能
3.3.5卷組的活動狀態管理
3.3.6卷組的導入導出管理
3.3.7邏輯卷的創建和維護
3.3.8通過鏡像保護邏輯卷
3.3.9通過條帶優化邏輯卷
3.3.10物理卷的設置和管理
第4章構建Oracle環境
第二篇管理篇
第5章在AIX中Oracle資料庫管理
第6章使用ASM跳過AIX卷空間管理
第7章管理AIX下Oracle的空間使用
第三篇災備篇
第8章設計和實施AIX系統備份
第9章設計Oracle系統備份
第10章實施Oracle系統備份
第11章恢復崩潰的系統
第四篇集群篇
第12章構建AIX下的Oracle集群環境
第13章在AIX中管理Oracle集群環境
第五篇優化篇
第14章在AIX上綜合設置Oracle環境
第15章AIX上Oracle系統的運行優化
第六篇擴展篇
第16章AIX上Oracle與Sybase的比較
③ 如何設計合理高效的資料庫
一、 引言資料庫對於企業信息化的重要性是不言而喻的。資料庫存儲著現代企業最重要的數據,包括生產、經營、管理等各類數據,這些數據作為企業的核心信息,通過各類信息系統,為用戶提供及時准確的信息,幫助用戶分析,為用戶提供決策依據。為提高企業的工作效率,提升企業形象,具有傳統模式無法比擬的優勢。其中構建合理高效的資料庫,是資料庫建設關鍵之一。如何構建合理高效的資料庫是企業信息化過程要解決的問題。下面就資料庫的構建談談自己的一些經驗,希望能對大家有所幫助。 二、 設計資料庫之前
資料庫並不是憑空想像出來的,而是根據業務部門的需要設計符合業務需求的資料庫。因此在形成資料庫之前需要充分了解業務需求。 1. 充分理解業務需求。需求分析是整個設計過程的基礎,是最困難、最耗費時間的一步。在這期間通過與業務部門交流,了解用戶的想法以及工作流程,通過雙方多次交流,會形成初步的數據模型,當然這時的數據模型不會是最終的模型,還需要和用戶進行交流,並且在以後的信息系統開發過程中還會反復修改。 2. 重視輸入輸出。在定義資料庫表和欄位需求(輸入)時,首先應了解數據產生源和數據流程,也就是必需要知道每個數據在那兒產生,數據在那兒表現,以什麼樣的形式表現等等,然後根據用戶提供的報表或者設計出的報表、查詢和視圖(輸出)以決定為了支持這些輸出哪些是必要的表和欄位。 3. 創建數據字典和ER 圖表。ER 圖表和數據字典可以讓任何了解資料庫的人都明確如何從資料庫中獲得數據。ER圖對表明表之間關系很有用,而數據字典則說明了每個欄位的用途以及任何可能存在的別名。對SQL 表達式的文檔化來說這是完全必要的。 需要注意的是,在需求分析調研過程中,並不是一帆風順的,因為業務人員對於業務的理解不同,以及對於信息知識的缺乏,會影響需求分析的質量,為了提高質量,各方要用更多的時間交流與相互理解,業務部門需要精通業務的人員自始至終全力配合,而開發人員則盡量使用用戶理解的業務術語交流,這樣會避免出現理解不同而產生的歧義。 三、 設計合理的表結構
通常合理的表結構會減少數據冗餘,提高資料庫的性能。設計合理的表結構要遵循以下兩點。 1. 標准化和規范化 數據的標准化有助於消除資料庫中的數據冗餘。標准化有好幾種形式,但3NF(第三範式)通常被認為在性能、擴展性和數據完整性方面達到了最好平衡。簡單來說,遵守3NF標準的資料庫的表設計原則是:某個表只包括其本身基本的屬性,當不是它們本身所具有的屬性時需進行分解。表之間的關系通過外鍵相連接。它具有以下特點:有一組表專門存放通過鍵連接起來的關聯數據。 例如:某個存放單井信息及其有關油井生產日報信息的3NF資料庫就有兩個表:單井基礎信息和油井日報信息。日報信息不包含單井的任何信息,但表內會存放一個鍵值,該鍵指向單井基礎信息里包含該油井信息的那一行。 不過也有例外,有時為了效率的緣故,對表不進行標准化也是必要的。 2. 考慮各種變化 在設計資料庫的時候考慮到哪些數據欄位將來可能會發生變更。使資料庫更具擴展性,從而減少將來數據變更所帶來的損失。 例如,日期類型欄位,有時我們會考慮使用字元類型代替日期類型,因為在處理日期欄位上容易產生數據錯誤,所以我們就使用字元類型。這樣的例子還很多,在做前期設計時都要考慮的。 表結構的設計不是一次就能成功的,在信息系統開發過程中會存在數據讀取、錄入或統計困難,為了解決這些問題會修改表結構,或增加一些欄位,或修改一些欄位的屬性。這個過程不斷重復,因此不要想一次能成功。建議使用專門設計工具來做這些工作,筆者經常使用:SYBASE PowerDesigner ,當然還有其它的工具:ORACLE Designer 2000 ,ROSE等工具。這樣會使你的工作事半功倍。 四、 選擇合理的索引
索引是從資料庫中獲取數據的最高效方式之一。95%的資料庫性能問題都可以採用索引技術得到解決。 1. 邏輯主鍵使用唯一的成組索引,對系統鍵(作為存儲過程)採用唯一的非成組索引,對任何外鍵列採用非成組索引。考慮資料庫的空間有多大,表如何進行訪問,還有這些訪問是否主要用作讀寫。 2. 大多數資料庫都索引自動創建的主鍵欄位,但是可別忘了索引外鍵,它們也是經常使用的鍵,比如運行查詢顯示主表和所有關聯表的某條記錄就用得上。 3. 不要索引大型欄位(有很多字元),這樣作會讓索引佔用太多的存儲空間。如MEMO(備注)、TEXT(文本)等欄位。 4. 不要索引常用的小型表 不要為小型數據表設置任何鍵,假如它們經常有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間。如代碼表,或系統參數表。 五、 保證數據完整性
數據的完整性非常重要,這關繫到數據的准確性,不準確的數據是毫無價值的,因此保證數據的完整性非常重要。 1. 完整性實現機制:實體完整性:主鍵參照完整性: 父表中刪除數據:級聯刪除;受限刪除;置空值父表中插入數據:受限插入;遞歸插入 父表中更新數據:級聯更新;受限更新;置空值 DBMS對參照完整性可以有兩種方法實現:外鍵實現機制(約束規則)和觸發器實現機制用戶定義完整性:NOT NULL;CHECK;觸發器 以上完整性機制需要熟悉和掌握,它對於數據的完整性非常重要。 2. 用約束而非業務規則強制數據完整性 採用資料庫系統實現數據的完整性。這不但包括通過標准化實現的完整性而且還包括數據的功能性。在寫數據的時候還可以增加觸發器來保證數據的正確性。不要依賴於業務層保證數據完整性;它不能保證表之間(外鍵)的完整性所以不能強加於其他完整性規則之上。 3. 強制指示完整性 在有害數據進入資料庫之前將其剔除。激活資料庫系統的指示完整性特性。這樣可以保持數據的清潔而能迫使開發人員投入更多的時間處理錯誤條件。 4. 使用查找控制數據完整性 控制數據完整性的最佳方式就是限制用戶的錄入。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性。某些公共數據特別適合查找:性別代碼、單位代碼等。 5. 採用視圖 視圖是一個虛擬表,其內容由SQL語句定義,視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以後的操作每次指定全部的條件。另外通過視圖用戶只能查詢和修改他們所能見到的數據。資料庫中的其它數據則既看不見也取不到。資料庫授權命令可以使每個用戶對資料庫的檢索限制到特定的資料庫對象上,增強數據的安全性。 六、 結束語
資料庫的高效運行不僅需要技術上的支持,也需要硬體平台和網路的支持以及資料庫管理員的有效管理,本文只是從技術的角度說明如何提高資料庫的效率,但在實際應用過程中其它方面的支持也是不可缺少的,尤其是資料庫管理,資料庫建設是「三分技術,七分管理,十二分基礎數據」,因此對於資料庫管理一定要重視,在管理到位的情況下技術才能發揮應有的作用。
④ Oracle資料庫基本知識
Oracle資料庫基本知識
Oracle Database,又名OracleRDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。本文為大家分享的是Oracle資料庫的基本知識,希望對大家有所幫助!
它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的適應高吞吐量的資料庫解決方案。
介紹
ORACLE資料庫系統是美國ORACLE公司(甲骨文)提供的以分布式資料庫為核心的一組軟體產品,是目前最流行的客戶/伺服器(CLIENT/SERVER)或B/S體系結構的資料庫之一。比如SilverStream就是基於資料庫的一種中間件。ORACLE資料庫是目前世界上使用最為廣泛的資料庫管理系統,作為一個通用的資料庫系統,它具有完整的數據管理功能;作為一個關系資料庫,它是一個完備關系的產品;作為分布式資料庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。
Oracle資料庫最新版本為OracleDatabase 12c。Oracle資料庫12c引入了一個新的多承租方架構,使用該架構可輕松部署和管理資料庫雲。此外,一些創新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個資料庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無二的技術進步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle資料庫12c 成為私有雲和公有雲部署的理想平台。
就業前景
從就業與擇業的角度來講,計算機相關專業的大學生從事oracle方面的技術是職業發展中的最佳選擇。
其一、就業面廣:ORACLE幫助拓展技術人員擇業的廣度,全球前100強企業99家都在使用ORACLE相關技術,中國政府機構,大中型企事業單位都能有ORACLE技術的工程師崗位,大學生在校期間興趣廣泛,每個人興趣特長各異,不論你想進入金融行業還是電信行業或者政府機構,ORACLE都能夠在你的職業發展中給你最強有力的支撐,成為你最貼身的金飯碗。
其二、技術層次深:如果期望進入IT服務或者產品公司,Oracle技術能夠幫助提高就業的深度。Oracle技術已經成為全球每個IT公司必選的軟體技術之一,熟練掌握Oracle技術能夠為從業人員帶來技術應用上的優勢,同時為IT技術的深入應用起到非常關鍵的作用。掌握 Oracle技術,是IT從業人員了解全面信息化整體解決方案的基礎。
其三、職業方向多:Oracle資料庫管理方向、Oracle開發及系統架構方向、Oracle數據建模數據倉庫等方向。
Oracle資料庫漏洞分析:無需用戶名和密碼進入你的資料庫
一般性的資料庫漏洞,都是在成功連接或登錄資料庫後實現入侵;本文介紹兩個在2012年暴露的Oracle漏洞,通過這兩種漏洞的結合,可以在不掌握用戶名/密碼的情況下入侵Oracle,從而完成對數據的竊取或者破壞。這兩個漏洞就是CVE-2012-1675和CVE-2012-3137。
引言
國內外很多重要的系統都採用Oracle作為數據存儲的資料庫;在Oracle中存儲著企業或政府大量敏感的信息,在金錢或政治的誘導下,內外部黑客會想法利用管理、網路、主機或資料庫的自身漏洞嘗試入侵到資料庫中,以達到自身的目的。
本文的作者通過對Oracle倆種漏洞的組合研究,設計了一套在不掌握用戶名/密碼的方式入侵到Oracle中;這種方法,比傳統的需要登錄到資料庫中的入侵方法,具有更大的安全隱患和破壞性。
本文希望通過對這兩個漏洞和攻擊方法的介紹,能夠引起相關人員的重視,完善對資料庫安全的措施。
1、概要介紹
本文提供的方法是基於漏洞CVE-2012-1675和CVE-2012-3137對oracle資料庫的攻擊測試的方法。
CVE-2012-1675漏洞是Oracle允許攻擊者在不提供用戶名/密碼的'情況下,向遠程“TNS Listener”組件處理的數據投毒的漏洞。攻擊者可利用此漏洞將資料庫伺服器的合法“TNS Listener”組件中的數據轉向到攻擊者控制的系統,導致控制遠程組件的資料庫實例,造成組件和合法資料庫之間的中間人攻擊、會話劫持或拒絕服務攻擊。
CVE-2012-3137漏洞是Oracle Database 10g/11g身份驗證協議實現中存在一個設計缺陷,攻擊者無需認證即可遠程獲取資料庫用戶密碼哈希相關數據,從而可以離線暴力破解用戶密碼,進一步控制資料庫系統。
我們通過如下的步驟和過程可以實現對Oracle的入侵:
(1)利用CVE-2012-1675進行TNS劫持,在監聽下利用遠程注冊,注冊同名資料庫實例;
(2)新登陸的用戶,在TNS的負載均衡策略下,有可能流量登錄到偽造的監聽服務上;
(3)該監聽服務對用戶的登陸過程進行監控,並將相關數據流量轉發到真實的資料庫上;
(4)利用CVE-2012-3137獲得通訊過程中的認證相關信息;
(5)對認證相關信息進行離線的暴力破解,獲得登陸的密碼;
(6)試用破解的用戶名/密碼登陸Oracle,完成對Oracle中數據的訪問;
2、通過CVE-2012-1675進行TNS劫持
該漏洞存在於Oracle的所有版本,並且Oracle至今僅是發布了警告性通知,並未提供解決方案。
要想利用CVE-2012-1675漏洞做TNS劫持,首先需要了解TNS機制。如下圖所示oracle 通過在本地解析網路服務名到目標主機IP地址,服務埠號,目標資料庫名,把這些信息發送到oracle伺服器端監聽程序,最後再由監聽程序遞送DBMS。
其中關鍵點在於監聽會按照目標資料庫名遞送到名稱正確的資料庫。那麼如果一個監聽下有2個同名資料庫。監聽將自動按照負載均衡把這次訪問發送到負載低的資料庫上,進行連接訪問。資料庫注冊到監聽的方法就決定了,能否同時注冊同名資料庫在同一個監聽下。注冊方式分為本地注冊和遠程注冊,通過修改參數可以調整為遠程注冊。
下面是一段可用的TNS劫持的過程:
1.在劫持機上創建一個和目標資料庫實例同名的資料庫實例。
2.在劫持機上修改 tnsnames.ora 文件
添加
listener_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=目標機器IP)(PORT=目標機器埠)))
3.在劫持機上用SQL*Plus 順序執行下面步驟。
1.$ sqlplus / as sysdba
2. SQL> ALTER SYSTEM SETREMOTE_LISTENER='LISTENER_NAME';
3. SQL> ALTER SYSTEM REGISTER;
4.多個客戶端,向資料庫發起登錄。會劫持到一部分客戶端的登錄信息。
最終達到效果如下圖所示:
按照猜想同一個監聽下有2個同名實例。客戶端訪問監聽,監聽按照客戶端中的資料庫名信息分配資料庫,由於監聽下有2個同名資料庫,客戶端鏈接很可能會被分配到劫持者的資料庫實例下,再通過配置劫持者的本地監聽把客戶端請求指回原資料庫。結構圖如下:
測試客戶端鏈接196次。目標資料庫實例獲得113次,劫持資料庫實例獲得83次基本滿足負載均衡的假設。(註上面實例是local server 下面實例是 remote server)
通過以上方式我們可以截獲約一半左右客戶端發送到伺服器的合法鏈接。其中獲得了伺服器IP、埠號、資料庫位置、實例名、登錄用戶名等一系列明文信息和4組密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。
3、通過CVE-2012-3137進行密碼破解
CVE-2012-3137受影響的資料庫版本有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(運行在z/OS下)版本。
雖然這個漏洞在11.2.0.3中已經解決,但是僅僅資料庫客戶端和伺服器都升級到11.2.0.3並且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。
正如CVE-2012-3137所描述Oracle為了防止第三方通過網路獲取登錄信息包。而對密碼進行了加密處理。本部分只以oracle11.1密碼如何破解為例進行說明。
在發起連接之後(oracle牽手完成),客戶端和伺服器經過協商確定要使用的驗證協議。要完成這個任務,客戶端首先向資料庫發送一個包。包中包含客戶端主要信息和所請求的加密方式。資料庫確認加密方式有效後,發送一個確認服務包如下圖所示:
在通過安全網路服務完成任何所要求的協議之後,資料庫用戶被O3logon(oracle驗證方式) 進行驗證,這個協議執行一個序列來向資料庫證明客戶端擁有密碼。為了避免網路第三方截獲到密碼。首先客戶端發送用戶名到資料庫來表明用戶身份。資料庫端根據加密協議,其中96位的作為資料庫端密鑰,20位的作為偏移量,它對每個連接都是不同的。一個典型的資料庫端發給客戶端的密鑰如下:
AUTH_SESSKEY.....COCDD89FIGODKWASDF……………………
客戶端根據加密演算法向伺服器端發送96位的客戶端密鑰和64位的密碼密鑰。伺服器端計算客戶端傳入的密碼密鑰。如果計算後密碼密文和資料庫中存儲的16位密碼密文一致則驗證通過。
根據這個過程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA這四個值是解密的關鍵。我們把他們按照SHA1,MD5,AES192進行一系列處理。最終通過數據字典碰撞得到密碼明文。
下面這段網上公布的一段示例代碼,這段代碼與筆者的思路不完全相同,但也能大概地說明這個漏洞的攻擊過程:
import hashlib
from Crypto.Cipher import AES
def decrypt(session,salt,password):
pass_hash= hashlib.sha1(password+salt)
key =pass_hash.digest() + 'x00x00x00x00'
decryptor= AES.new(key,AES.MODE_CBC)
plain =decryptor.decrypt(session)
returnplain
session_hex ='6EAAB5422553A7598143E78767'
salt_hex = 'A7193E546377EC56639E'
passwords = ['test','password',''oracle','demo']
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[40:] == 'x08x08x08x08x08x08x08x08':
print'PASSWORD IS "%s"' % password
break
4、建議的預防措施
根據以上兩段分析,我們可以有如下的預防措施:
(1)在條件許可的情況下,對Oracle進行補丁升級,對Oracle打cpuoct2012-1515893補丁;注意對於cpuoct2012-1515893補丁要求伺服器端和應用伺服器端同時升級,否則應用系統將無法訪問Oracle;
(2)若無法對Oracle升級,要購買或安裝具備虛擬補丁功能的資料庫安全產品,防止對CVE-2012-3137和CVE-2012-1675的利用;
(3)建立足夠強健的口令,不要使用8位以下密碼,或者字典庫中的口令。
;⑤ 資料庫設計說明書有沒有範文
正文
1 引言
1.1編寫目的
說明編寫這份資料庫設計說明書的目的,指出預期的讀者。
1.2背景
說明:
a.說明待開發的資料庫的名稱和使用此資料庫的軟體系統的名稱;
b.列出該軟體系統開發項目的任務提出者、用戶以及將安裝該軟體和這個資料庫的計算站(中心)。
1.3定義
列出本文件中用到的專門術語的定義、外文首字母組詞的原片語。
1.4參考資料
列出有關的參考資料:
a.本項目的經核準的計劃任務書或合同、上級機關批文;
b.屬於本項目的其他已發表的文件;
c.本文件中各處引用到的文件資料,包括所要用到的軟體開發標准。
列出這些文件的標題、文件編號、發表日期和出版單位,說明能夠取得這些文件的來源。
2 外部設計
2.1標識符和狀態
聯系用途,詳細說明用於唯一地標識該資料庫的代碼、名稱或標識符,附加的描述性信息亦要給出。如果該資料庫屬於尚在實驗中、尚在測試中或是暫時使用的,則要說明這一特點及其有效時間范圍。
2.2使用它的程序
列出將要使用或訪問此資料庫的所有應用程序,對於這些應用程序的每一個,給出它的名稱和版本號。
2.3約定
陳述一個程序員或一個系統分析員為了能使用此資料庫而需要了解的建立標號、標識的約定,例如 用於標識資料庫的不同版本的約定和用於標識庫內各個文卷、、記錄、數據項的命名約定等。
2.4專門指導
向准備從事此資料庫的生成、從事此資料庫的測試、維護人員提供專門的指導,例如將被送入數據 庫的數據的格式和標准、送入資料庫的操作規程和步驟,用於產生、修改、更新或使用這些數據文卷的操 作指導。 如果這些指導的內容篇幅很長,列出可參閱的文件資料的名稱和章條。
2.5支持軟體
簡單介紹同此資料庫直接有關的支持軟體,如資料庫管理系統、存儲定位程序和用於裝入、生成、修 改、更新資料庫的程序等。說明這些軟體的名稱、版本號和主要功能特性,如所用數據模型的類型、允許 的數據容量等。列出這些支持軟體的技術文件的標題、編號及來源。
3 結構設計
3.1概念結構設計
說明本資料庫將反映的現實世界中的實體、屬性和它們之間的關系等的原始數據形式,包括各數據項、記錄、系、文卷的標識符、定義、類型、度量單位和值域,建立本資料庫的每一幅用戶視圖。
3.2邏輯結構設計
說明把上述原始數據進行分解、合並後重新組織起來的資料庫全局邏輯結構,包括所確定的關鍵字和屬性、重新確定的記錄結構和文卷結構、所建立的各個文卷之間的相互關系,形成本資料庫的資料庫管理員視圖。
3.3物理結構設計
建立系統程序員視圖,包括:
a.數據在內存中的安排,包括對索引區、緩沖區的設計;
b.所使用的外存設備及外存空間的組織,包括索引區、數據塊的組織與劃分;
c.訪問數據的方式方法。
4 運用設計
4.1數據字典設計
對資料庫設計中涉及到的各種項目,如數據項、記錄、系、文卷、模式、子模式等一般要建立起數據字典,以說明它們的標識符、同義名及有關信息。在本節中要說明對此數據字典設計的基本考慮。
4.2安全保密設計
說明在資料庫的設計中,將如何通過區分不同的訪問者、不同的訪問類型和不同的數據對象,進行分別對待而獲得的資料庫安全保密的設計考慮。
⑥ 緊急,需要資料庫論文一份,希望各位大蝦幫忙啊
學校教材定購系統 1.引言 隨著教學質量的提高,對軟體質量的要求也越來越高,因此,教師、學生對教材的訂購了越來越重視,希望獲取教材的過程簡單,方便,快速,因而,做一個好的訂購系統是十分重要的。 訂購是指教師或學生向工作人員提供要采購的教材,經工作人員審查後,發給教師或學生發票,然後去書庫去領取教材,但工作人員發現書庫中缺貨時,要及時的向采購部報告,采購部要及時的進貨,然後,工作人員來修改記錄。 1.1 編寫的目的 需求分析的任務是確定系統必須完成哪些工作,就是對目標系統提出完整、准確、 清晰、具體的要求。 此教材訂購系統的編寫目的是,讓用戶以及工作人員充分了解本產品而設立的,它說明了本產品的各種功能和性能需求,明確各種功能的實現背景,以及適用的范圍及背景。提供客戶解決問題和達到目標所需要的條件,提供一個度量和遵守的基準。 1.2 背景 工程的名稱:學校教材訂購系統開發公關項目。 工程產品的名稱:學校教材訂購系統。 工程組織者:南昌航空工業學院038062班學生。 工程使用者:南昌航空工業學院教務處。 產品用戶:教師,學生。 產品設計者:南昌航空工業學院038062班學生。 1.3 定義 教材訂購顧名思義就是領取和購買教材。 訂購系統的主要內容是,利用計算機來實現教材的采購,以及教材的銷售,只要教師或學生憑發票就可以領取自己的教材,如果某種教材脫銷時,則要登記缺書,有采購部去采購,一旦新書入庫,要及時的更改記錄。 需求用戶解決問題或達到目標所需的條件或權能;系統或系統部件要滿足合同、標准、規范或其它正式規定文檔所需具有的條件或權能。 需求量分析包括提煉、分析和仔細審查已收集到需求,以確保所有的風險承擔者都明白其含義並找出其中的錯誤、遺憾或其它不足的地方。 模塊的獨立性是指軟體系統中每個模塊只涉及軟體要求的具體的子功能,而和軟體系統中其他的模塊的介面是簡單的。 1.3 參考資料 軟體工程導論-------------------------張海藩 主編 清華大學出版社 軟體開發項目管理--------------------劉積仁、康曉東、饒友玲 主編 人民郵電出版社 2. 任務概述 2.1 目標: 本系統可細化為兩個子系統:銷售系統和采購系統 銷售系統的工作過程為:首先由教師或學生提交購書單,經教材科發行人員審核是有效購書單後,開發票、登記並返給教師或學生領書單,教師或學生即可去書庫領書。 采購系統的主要工作過程為:若是脫銷教材,則登記缺書,發缺書單給 書庫采購人員;一旦新書入庫後,即發進書通知。 下面給出系統的初步概圖,方便用戶和讀者充分認識本系統的最初實現情況,並對系統有個初步的了解,也方便開發人員把握開發方向,最終實現本系統。 出庫表 缺書登記表 待購教材表 教材庫存表 進庫表 購書表 進書通知 2.2 用戶的特點: 本系統用戶的特點:本軟體的最終用戶可分為操作人員、維護人員。 其中,操作人員要求對計算機有一定了解的企業技術人員。最好能熟練運用計算機所用操作系統,精通所用系統功能, 維護人員要求對本系統有較深的了解,同時對系統相關信息及工作流程有所了解的技術人員。 本系統主要在學期開學發書、學期結束訂書時大幅度使用,這時候也是本系統最需要維護的時候,所以在這時候要對本系統進行必要的檢修,防止數據出錯。 2.3 假設與約束 設計的約束或實現約束描述在設計或實現應用系統時應遵守的限制條件。其並不是要取代設計(實現)過程,只是說明用戶或環境強加給項目的限制條件。 本系統的限制條件是: 當書庫中書籍發生改變時,要及時修改相關書籍的記錄。 在實現銷售和采購的工作過程中,要考慮相關的合法性。 系統的外部項要包括:教師、學生、教材工作人員。 系統的相關數據存儲包括:購書表,庫存表,缺書登記表,待購教材表,進庫表和出庫表。 3. 需求規定 3.1 對功能的規定 本系統在向學生售書時主要輸入學生學號、班級代號、購書數量、購書書名信息,然後列印領書單返回給學生領取書籍。 本系統在查詢資料庫時主要輸入需要查詢的相關信息,包括圖書編號、圖書書名、出版社信息、圖書特色等信息方便操作人員把握圖書信息。 本系統還兼顧一點財務信息的管理,在發生單人購書時,系統直接向購書者收取現金,內部形成一個小小的財務管理。 本系統還和學校的財務科發生數據交換,發生集體售書時,學根據數據的有效性,直接向集體售書,形成的財務信息直接和財務科交換,方便結算。即:向學生集體售書時不需要直接收取現金,而待教材科結算時向財務科提交數據,由財務科從學生的預交書費里扣除,保證教材科財務信息的完整。 3.2 對性能的規定 對系統中輸入的數據要按照數據字典的規定嚴格輸入,盡量避免數溢出處和數據的不合法性。 3.2.1 精度 要求查詢切換之間的時間控制以秒為單位。 3.2.2 時間特性要求 在軟體方面,響應時間、更新處理時間、數據傳送和轉換時間、處理和解決問題時間,都比較迅速,完全滿足用戶要求。 3.2.3 靈活性 當操作方式、數據結構、與其它軟體介面等發生變化時,設計的軟體要做一些適當高速整,靈活性非常大。 3.3 輸入輸出要求 3.4 數據管理能力的要求 3.5 故障處理要求 4. 運行環境規定 4.1 設備 使用Windows NT 或 Windows 2000 Server以上操作系統。 4.2 支持的軟體 4.3 介面 在顯示器上完成相應的功能,在windows xp或windows 2000server 系統下安裝此軟體。 4.4 控制 二. 數據需求說明書 1. 引言 1.1 編寫的目的 數據需求說明書的編制目的是為了向整個開發時期提供關於處理數據的描述和數據採集要求的技術信息。 1.2 背景 因為每個教師教學時所用的教材是不同的,所以,采購部就需要購買的書籍也就不同,並且,因為系別的不同,所使用的教材也就不同,書庫中,書籍的脫銷也是經常發生的,就需要采購部購買此種書籍,這時,就要修改書庫中此種書籍的記錄。所以,數據的流通是非常多且亂的,所以呢,數據需求說明書是非常必要的。 1.3 定義 1.4 參考資料 2. 數據的邏輯描述 2.1 靜態數據 2.2 動態輸入數據 動態輸入數據是有後勤工作人員控制的,包括 2.3 動態輸出數據 2.4 內部生成數據 2.5 數據約束 3.數據的採集 3.1 要求和范圍 3.2 輸入的承擔者 3.3 處理 3.4 影響 在整個需求說明書中,數據佔了絕大多數,需求說明書是為後面的編程作鋪墊的,如果需求說明書中出現錯誤的話,那整個系統就會出現錯誤,而在整個需求說明書中數據出現錯誤的概率是非常大的,所以,數據的說明書是非常重要的,這樣可以減少軟體系統中錯誤。 三.概要設計說明書 概要設計說明書可稱作系統設計說明書,這里說的系統是指程序系統。 引言 1.1 編寫目的 編寫的目的是說明對程序的系統的設計考慮,包括程序系統的基本處理流程、程序系統的組織結構、模塊劃分、功能分配、介面設計、運行設計、數據結構設計和出錯處理設計等,為程序的詳細設計提供基礎。 在本階段中,確定如何具體的實現所要求的系統,從而在編碼階段可以把這個描述直接翻譯成具體的程序語言書寫的程序。主要工作有:根據《學校教材訂購系統需求分析說明書》所描述的數據、功能性能需求、處理流程、總體結構和模塊設計,涉及軟體系統的結構設計、逐個模塊的程序描述。 1.2 背景 「學校教材訂購系統」有兩部分組成:銷售系統和采購系統。 銷售系統的工作過程為:首先由教師或學生提交購書單,經教材發行人員審核是有效購書單後,開發票、登記並返給教師或學生領書單,教師或學生即可去書庫領書。 采購系統的主要工作過程為:若是脫銷教材,則登記缺書,發缺書單給書庫采購人員;一旦新書入庫後,即發進書通知給教材發行人員。 1.3 定義 庫存表:存放庫中存在得書籍數據。 出庫表:存放已銷售的書籍的數據。 入庫表:存放入庫書籍的數據。 購書表:存放提交的購書信息。 缺書登記表:存放缺少的書籍的信息。 待購教材表:存放待購書籍信息。 1.3 參考資料 軟體工程導論---------------------- 張海藩 主編 清華大學出版社 資料庫系統概論------------------薩師煊、王珊 主編 高等教育出版社 學校教材訂購系統需求分析說明書---------------------軟體開發小組 總體設計 2.1 需求規定 為方便教師、學生領書,教材發行人員處理各種單據,以及采購人員采購需開發一個「學校教材訂購系統」。教師後學生提交購書單,經教材發行人員審核是有效購書單後,開發票、登記並返給教師或學生領書單,教師或學生即可去書庫領書。若是脫銷教材,則登記缺書,發缺書單給書庫采購人員;一旦新書入庫後,即發進書通知給教材發行人員。 要求系統能有效、快速、安全、可靠和無誤的完成上述操作。並要求界面簡單明了,易於操作,資料庫利於維護。 2.2 運行環境 Windows xp 系統中或windows 2000 server 中。 2.3 基本設計概念和處理流程 2.4 結構 2.5 功能需求與程序的關系 2.6 人工處理過程 2.7 尚未解決的問題 介面設計 2.8 用戶介面 2.9 內部介面 2.10 外部介面 4. 運行設計 4.1 運行模塊組合 4.2 運行控制 4.3 運行時間 5. 系統數據結構設計 5.1 邏輯結構設計要點 5.2 物理結構設計要點 5.3 數據結構與程序的關系 6. 系統出錯處理設計 6.1 出錯信息 6.2 補救措施 6.3 系統維護設計 四. 詳細設計說明書 1 引言 1.1 編寫目的 1.2 背景 1.3 定義 1.4 參考資料 2 程序系統的組織結構 3 程序1(標識符)設計說明 3.1 程序描述 3.2 功能 銷售子系統模塊:提交購書單、審核購書單、開發票、登記購書紀錄、返回領書單、修改和維護資料庫中相應的表。 采購子系統模塊:發缺書單、登記缺書紀錄、擬訂待購書信息、發進書通知單、修改和維護資料庫中相應的表。 3.3 性能 ① 精度:購書是由需求決定的,只要有缺書現象則會體現出來,但也因為這樣,如果需要提前多購相關書籍的話,則需要管理人員的參與。 ② 時間特性要求:定購需要提前若干天。 ③ 可靠性:較高 ④ 靈活性:在購書單未審核時,可以撤消訂購或修改,一旦審核,則不能再修改 3.4 輸入項 銷售子系統模塊:需要輸入購書單中要求的信息(提交人姓名、書名、書號、數量、身份識別碼)。 采購子系統模塊:需要輸入缺書單中要求的信息(書名、書號、數量)。 3.5 輸出項 銷售子系統模塊:需要列印領書單(書名、書號、數量、領書人姓名),發票(書名、書號、開票人姓名、交易金額、交易日期)。 采購子系統模塊:需要列印進書通知單(書號、書名、進書日期)。 3.6 演算法 3.7 流程邏輯 銷售子系統模塊程序流程圖:
⑦ 求資料庫在備份與恢復中的安全策略研究的論文
資料庫在備份與恢復中的安全策略研究 郭小雪 該文說明了資料庫管理中備份與恢復的概念,分析資料庫的備份與恢復對資料庫安全的作用,得到了資料庫備份與恢復的策略。【作者單位】:茂名學院理學院 廣東茂名525000【關鍵詞】:資料庫安全;備份;恢復;策略【分類號】:TP309.3【DOI】:CNKI:SUN:DZJC.0.2007-10-013【正文快照】:1引言信息技術的發展離不開資料庫技術的不斷發展,從dBASE、FoxBASE、FoxPro、Access,到Microsoft SQL Server、Sybase SQL Server、Oracle,資料庫的規模越來越大,其功能也越來越強大[1]。資料庫在各種商務活動中重要性的不斷增強,維護系統數據的安全已成為當前一個十分重要的課題。為了有效地保持健康的資料庫系統,必須採取一定的措施防止在由介質、操作系統、軟體和其他事件導致重要資料庫文件嚴重損壞的情況下影響DBMS,進而影響資料庫系統的正常運行[2]。2備份與恢復的基本概念2.1備份備份就是把資料庫復制到轉儲設備的過程。… http://www.cnki.com.cn/Article/CJFDTEMP-DZJC200710013.htm