Oracle數據安全面面觀_第1頁
Oracle數據安全面面觀_第2頁
Oracle數據安全面面觀_第3頁
Oracle數據安全面面觀_第4頁
Oracle數據安全面面觀_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Oracle數據安全面面觀 錄入:admin | 日期:2007-05-21 | 作者: | 來源: | 閱讀:442 隨著計算機的普普及以及網絡絡的發展,數數據庫已經不不再僅僅是那那些程序員所所專有的話題題。而Oraacle數據據庫更是憑借借其性能卓越越,操作方便便靈活的特點點,在數據庫庫的市場中已已經占據了一一席之地。但但是同樣隨著著網絡技術的的不斷進步,數數據信息的不不斷增加,數數據安全已經經不再是以前前的“老生長長談”,也更更不是以前書書本上那些“可可望不可及”的的條條框框。或許很久以前,大大家都覺得OOraclee數據庫的安安全并不存在在隱患,因為為Oraclle公司在去去年11月份

2、份開始促銷其其數據庫軟件件時提出的口口號是“只有有Oraclle9i能夠夠做到絕對安安全”。但是是不管它這么么說是為了促促銷,還是為為了擴大知名名度,總之伴伴去年12 月份,英國國的安全專家家 Daviid Littchfieeld 發現現的9iASS 中存在的的程序錯誤導導致的緩沖溢溢出漏洞以及及后來,PeenTestt Limiited 和和 eEyee Digiital SSecuriity 各自自提出了一個個小的漏洞,所所有使用Orracle公公司產品的人人都不由地緊緊張了原本松松弛的大腦-這個對于于用戶來說,畢畢竟關系到了了自己的“身身家性命”。下面筆者將帶著著大家走進OOracle

3、e數據安全的的世界。由于于筆者水平有有限,所以不不足之處在所所難免,望大大家不吝賜教教。(一)Oraccle數據庫庫的一些基本本常識這里僅僅是為了了以后的安全全奠定一些基基礎,因為我我們后面要用用到它們。呵呵呵!1.Oraclle所包含的的組件:在 Oraclle,數據庫庫是指整個 Oraclle RDBBMS 環境境,它包括以以下組件:Oraclee 數據庫進進程和緩沖(實實例)。SYSTEMM 表空間包包含一個集中中系統類目,它它可以由一個個或多個數據據文件構成。其它由數據庫庫管理員 (DBA)(可可選)定義的的表空間,每每個都由一個個或多個數據據文件構成。兩個以上的聯聯機恢復日志志。歸檔

4、恢復日志志(可選)。其它文件(控控制文件、IInit.oora、Coonfig.ora 等等)。每個 Oraccle 數據據庫都在一個個中央系統類類目和數據字字典上運行,它它位于SYSSTEM 表表空間。2.關于“日志志”Oracle數數據庫使用幾幾種結構來保保護數據:數數據庫后備、日日志、回滾段段和控制文件件。下面我們們將大體上了了解一下作為為主要結構之之一的“日志志”:每一個Oraccle數據庫庫實例都提供供日志,記錄錄數據庫中所所作的全部修修改。每一個個運行的Orracle數數據庫實例相相應地有一個個在線日志,它它與Oraccle后臺進進程LGWRR一起工作,立立即記錄該實實例所作的全全

5、部修改。歸歸檔(離線)日日志是可選擇擇的,一個OOraclee數據庫實例例一旦在線日日志填滿后,可可形成在線日日志歸檔文件件。歸檔的在在線日志文件件被唯一標識識并合并成歸歸檔日志。關于在線日志志:一個Orracle數數據庫的每一一實例有一個個相關聯的在在線日志。一一個在線日志志由多個在線線日志文件組組成。在線日日志文件(oonlinee redoo log file)填填入日志項(rredo eentry),日日志項記錄的的數據用于重重構對數據庫庫所作的全部部修改。關于歸檔日志志:Oraccle要將填填滿的在線日日志文件組歸歸檔時,則要要建立歸檔日日志(arcchivedd redoo log

6、)。其其對數據庫備備份和恢復有有下列用處:數據庫后后備以及在線線和歸檔日志志文件,在操操作系統和磁磁盤故障中可可保證全部提提交的事物可可被恢復。在數據庫庫打開和正常常系統使用下下,如果歸檔檔日志是永久久保存,在線線后備可以進進行和使用。數據庫可運行在在兩種不同方方式下:NOOARCHIIVELOGG方式或ARRCHIVEELOG 方方式。數據庫庫在NOARRCHIVEELOG方式式下使用時,不不能進行在線線日志的歸檔檔。如果數據據庫在ARCCHIVELLOG方式下下運行,可實實施在線日志志的歸檔。3.物理和邏輯輯存儲結構:Oracle RDBMSS是由表空間間組成的,而而表空間又是是由數據文件

7、件組成的。表表空間數據文文件被格式化化為內部的塊塊單位。塊的的大小,是由由DBA在OOraclee第一次創建建的時候設置置的,可以在在512到88192個字字節的范圍內內變動。當一一個對象在OOraclee表空間中創創建的時候,用用戶用叫做長長度的單位(初初始長度((initiial exxtent)、下一個長長度(nexxt exttent)、最最小長度(mmin exxtentss)、以及最最大長度(mmax exxtentss)來標明明該對象的空空間大小。一一個Oraccle長度的的大小可以變變化,但是要要包含一個由由至少五個連連續的塊構成成的鏈。4.Oraclle與Miccrosoff

8、t SQLL Servver比較下下的聯網協議議:(二)Oraccle數據安安全的維護記得某位哲學家家說過:“事事物的變化離離不開內因和和外因。”那那么對于Orracle數數據安全這個個話題而言,也也勢必分為“內內”和“外”兩兩個部分。那那么好,我們們就先從“內內”開始說起起:1.從Oraacle系統統本身說起我們先拋開令人人聞風色變的的“hackker”和其其他一些外部部的原因,先先想一下我們們的數據庫。什什么硬盤損壞壞,什么軟件件受損,什么么操作事物一系列由由于我們的“疏疏忽”而造成成的系統問題題就完全可以以讓我們辛苦苦建立的數據據庫中的數據據一去不復返返。那么,我我們就先從自自己身上找找

9、找原因吧。【一】解決系統統本身問題的的方法-數數據庫的備份份及恢復數據庫的備份份:關于Oraclle數據庫的的備份,標準準地有三中辦辦法:導出/導入(Exxport/Imporrt)、冷備備份、熱備份份。導出備份份是一種邏輯輯備份,冷備備份和熱備份份是物理備份份。導出/導導入(Expport/IImportt)利用Exporrt可將數據據從數據庫中中提取出來,利利用Impoort則可將將提取出來的的數據送回OOraclee數據庫中去去。a.簡單導出數數據(Expport)和和導入數據(IImportt)Oracle支支持三種類型型的輸出:(1)表方式(TT方式),將將指定表的數數據導出。(2)

10、用戶方式式(U方式),將將指定用戶的的所有對象及及數據導出。(3)全庫方式式(Fulll方式),將將數據庫中的的所有對象導導出。數據導出(Immport)的的過程是數據據導入(Exxport)的的逆過程,它它們的數據流流向不同。b.增量導出/導入增量導出是一種種常用的數據據備份方法,它它只能對整個個數據庫來實實施,并且必必須作為SYYSTEM來來導出。在進進行此種導出出時,系統不不要求回答任任何問題。導導出文件名缺缺省為expport.ddmp,如果果不希望自己己的輸出文件件定名為exxport.dmp,必必須在命令行行中指出要用用的文件名。增量導出包括三三個類型:(1)“完全”增增量導出(C

11、Compleete)即備份整個數據據庫,比如:exp syystem/managger innctypee=compplete file=9907002.dmpp(2)“增量型型”增量導出出備份上一次備份份后改變的數數據。比如:exp syystem/managger innctypee=incrrementtal fiile=9990702.dmp(3)“累計型型”增量導出出(Cumuulativve)累計型導出方式式只是導出自自上次“完全全” 導出之之后數據庫中中變化了的信信息。比如:exp syystem/managger innctypee=cumuulativve fille=990

12、0702.ddmp數據庫管理員可可以排定一個個備份日程表表,用數據導導出的三個不不同方式合理理高效地完成成。比如數據據庫的備份任任務可作如下下安排:星期一:完全全導出(A)星期二:增量量導出(B)星期三:增量量導出(C)星期四:增量量導出(D)星期五:累計計導出(E)星期六:增量量導出(F)星期日:增量量導出(G)如果在星期日,數數據庫遭到意意外破壞,數數據庫管理員員可按以下步步驟來恢復數數據庫:第一步:用命令令CREATTE DATTABASEE重新生成數數據庫結構;第二步:創建一一個足夠大的的附加回段。第三步:完全增增量導入A:imp syystem./manaager iinctyppe

13、= REECTOREE FULLL=Y FIILE=A第四步:累計增增量導入E:imp syystem/managger innctypee= RECCTORE FULL=Y FILLE =E第五步:最近增增量導入F:imp syystem/managger innctypee=RESTTORE FFULL=YY FILEE=F冷備份冷備份發生在數數據庫已經正正常關閉的情情況下,當正正常關閉時會會提供給我們們一個完整的的數據庫。冷冷備份是將關關鍵性文件拷拷貝到另外位位置的一種說說法。對于備備份Oraccle信息而而言,冷備份份是最快和最最安全的方法法。冷備份的的優點是:是非常快速的的備份方法(

14、只只需拷貝文件件)容易歸檔(簡簡單拷貝即可可)容易恢復到某某個時間點上上(只需將文文件再拷貝回回去)能與歸檔方法法相結合,作作數據庫“最最新狀態”的的恢復。低度維護,高高度安全。但冷備份也有如如下不足:單獨使用時,只只能提供到“某某一時間點上上”的恢復。在實施備份的的全過程中,數數據庫必須要要作備份而不不能作其它工工作。也就是是說,在冷備備份過程中,數數據庫必須是是關閉狀態。若磁盤空間有有限,只能拷拷貝到磁帶等等其它外部存存儲設備上,速速度會很慢。不能按表或按按用戶恢復。如果可能的話(主主要看效率),應應將信息備份份到磁盤上,然然后啟動數據據庫(使用戶戶可以工作)并并將所備份的的信息拷貝到到磁

15、帶上(拷拷貝的同時,數數據庫也可以以工作)。冷冷備份中必須須拷貝的文件件包括:所有數據文件件所有控制文件件所有聯機REEDO LOOG文件Init.oora文件(可可選)值得注意的是冷冷備份必須在在數據庫關閉閉的情況下進進行,當數據據庫處于打開開狀態時,執執行數據庫文文件系統備份份是無效的下面是做冷備份份的完整例子子:(1) 關閉數數據庫sqqldba lmodee=ySQLDBA connnect iinternnal;SQLDBA shuttdown normaal;(2) 用拷貝貝命令備份全全部的時間文文件、重做日日志文件、控控制文件、初初始化參數文文件SQLDBA ! cpp (3)

16、重啟OOraclee數據庫sqldbaa lmodde=ySQLDBA connnect iinternnal;SQLDBA starrtup;熱備份熱備份是在數據據庫運行的情情況下,采用用archiivelogg modee方式備份數數據的方法。所所以,如果你你有昨天夜里里的一個冷備備份而且又有有今天的熱備備份文件,在在發生問題時時,就可以利利用這些資料料恢復更多的的信息。熱備備份要求數據據庫在Arcchivellog方式下下操作,并需需要大量的檔檔案空間。一一旦數據庫運運行在arcchivellog狀態下下,就可以做做備份了。熱熱備份的命令令文件由三部部分組成:1數據文件一一個表空間一一個

17、表空間地地備份。(1)設置表空空間為備份狀狀態(2)備份表空空間的數據文文件(3)恢復表空空間為正常狀狀態2備份歸檔llog文件。(1)臨時停止止歸檔進程(2)log下下那些在arrchivee redoo log目目標目錄中的的文件(3)重新啟動動archiive進程(4)備份歸檔檔的redoo log 文件3用alteer dattabasee backkup coontrollfile命命令來備份拷拷貝文件熱備份的優點是是:可在表空間或或數據文件級級備份,備份份時間短。備份時數據庫庫仍可使用。可達到秒級恢恢復(恢復到到某一時間點點上)。可對幾乎所有有數據庫實體體作恢復。恢復是快速的的,在

18、大多數數情況下在數數據庫仍工作作時恢復。熱備份的不足是是:不能出錯,否否則后果嚴重重。若熱備份不成成功,所得結結果不可用于于時間點的恢恢復。因難于維護,所所以要特別仔仔細小心,不不允許“以失失敗而告終”。【二】來自內部部的另外一個個隱患-用用戶管理以及及密碼問題在這里,其實作作為一個差不不多點的數據據庫管理員都都很清楚,OOraclee數據庫本身身就使用了很很多種手段來來加強數據庫庫的安全性,經經常見到的就就有密碼,角角色,權限等等等。那么我我們就從最簡簡單的DBSSNMP說起:Oralce 數據庫如果果采用典型安安裝后,自動動創建了一個個叫做DBSSNMP的用用戶,該用戶戶負責運行OOrac

19、lee系統的智能能代理(Inntelliigent Agentt),該用戶戶的缺省密碼碼也是“DBBSNMP”。如如果忘記修改改該用戶的口口令,任何人人都可以通過過該用戶存取取數據庫系統統。現在我們們來看一下該該用戶具有哪哪些權限和角角色,然后來來分析一下該該用戶對數據據庫系統可能能造成的損失失。啟動SQL/PPLUS程序序,使用該用用戶登錄進入入:SQL seelect * froom sesssion_privss;CREATE SESSIIONALTER SSESSIOONUNLIMITTED TAABLESPPACECREATE TABLEECREATE CLUSTTERCREATE

20、SYNONNYMCREATE PUBLIIC SYNNONYMCREATE VIEWCREATE SEQUEENCECREATE DATABBASE LLINKCREATE PROCEEDURECREATE TRIGGGERANALYZEE ANYCREATE TYPECREATE OPERAATORCREATE INDEXXTYPE可以看到該用戶戶不是SYSS或SYSTTEM管理用用戶,然而,它它卻具有兩個個系統級權限限:UNLIIMITEDD TABLLESPACCE和CREEATE PPUBLICC SYNOONYM。看到這兩個權限限你應該馬上上想到,這些些都是安全隱隱患,尤其是是UNL

21、IMMITED TABLEESPACEE,它是破壞壞數據庫系統統的攻擊點之之一。如果這這時候你還依依然認為,即即使有人利用用這個沒有修修改的口令登登錄進數據庫庫也造成不了了什么損失的的話,我就不不得不提醒你你:該用戶具具有UNLIIMITEDD TABLLESPACCE的系統權權限,它可以以寫一個小的的腳本,然后后惡意將系統統用垃圾數據據填滿,這樣樣數據庫系統統也就無法運運行,并將直直接導致最終終的癱瘓。目目前很多數據據庫系統都要要求7X244的工作,如如果出現了系系統用垃圾數數據填滿的情情況,那么,等等數據庫系統統恢復時,恐恐怕不可挽回回的損失已經經造成了。可是除了 DBBSNMP 還有很多

22、其其他的用戶,怎怎么辦呢?讓讓我們先看一一下目前普遍遍存在于Orracle數數據庫中的用用戶管理問題題:(1)權限過大大:對ORAACLE數據據庫編程和瀏瀏覽的一般用用戶常常具有有DBA (數據庫管理理員權限),能對數據庫系統統做任何修改改或刪除。(2)安全性差差:很多ORRACLE用用戶缺省存儲儲位置都在系系統表空間,這這樣不僅影響響系統的正常常工作,而且不同用用戶的數據信信息互相影響響、透明,保保密性差。隨隨著數據的不不斷加入,有可能使整個數數據庫系統崩崩潰。(3)密碼有規規律:在ORRACLE調調試初期形成成的用戶名和和密碼一致的的不良習慣保保留到現在;系統用戶SSYS和SYYSTEM的

23、的密碼也眾所所皆知。知道了這些普遍遍的“毛病”,我我們怎么做呢呢?下面是我我的一些建議議:(1)ORACCLE DBBA (數據據庫管理員)的規范SUN Soolariss操作系統下下ORACLLE用戶密碼碼應嚴格保密密,絕不該把把密碼設成ORACLE;并指定專門門的數據庫管管理員定期修修改。ORACLEE初始化建立立的SYS和和SYSTEEM系統管理理員用戶密碼碼應由原來MMANAGEER改成別的的不易被記憶憶的字符串。ORACLEE WEB SERVEER的管理端端口具備DBBA瀏覽數據據庫的能力,因因此其管理者者ADMIN的密密碼也應保密密,不該把密密碼設成MAANAGERR;并指定專專

24、門的數據庫庫管理員定期修改。ORACLEE DBA最最好在SUNN SPARRC服務器控控制臺上用窗窗口式界面實實現管理。前前提是ORACLEE用戶啟動服服務器,然后后在窗口式命命令行下輸入入SVRMGGRM,即啟啟動了ORAACLE SSERVERR MANAAGER菜單單式管理;用用SYSDBBA身份登錄錄后,就可做做數據庫系統統維護工作了了(2)SQL*PLUS編編程用戶的規規范存儲結構的規規范考慮到用SQLL*PLUSS編程可實現現各行各業、各各公司、各部部門多種多樣樣的應用需求求,我們的SSQL*PLLUS編程用用戶也應該朝朝這個方向規規范:不同種種類的應用必必須有不同的的用戶;不同

25、同種類的應用用必須有不同同的存儲位置置,包括物理理文件、缺省省表空間、臨臨時表空間的的創建和規劃劃:當準備編編寫某一較大大規模(從OORACLEE數據量和面面向用戶量考考慮)應用程程序時,首先先應該創建一一個邏輯的存存儲位置-表表空間,同時時定義物理文文件的存放路路徑和所占硬硬盤的大小。、物理文件缺缺省的存放路路徑在/orracle_home/dbs下,在在命令行下用用 UNIXX指令df -k 可查查看硬盤資源源分區的使用用情況。如果果oraclle_homme使用率達達90以上上,而且有一一個或多個較較為空閑的硬硬盤資源分區區可以利用,我我們最好把物物理文件缺省省的存放路徑徑改到較為空空閑

26、的硬盤資資源分區路徑徑下。在此路路徑下我們可可以這樣規劃劃資源物理文文件的存儲:xxx表空間xxx行業/ xxx公司司/ xxxx 部門/ xxx 服服務.dbffDEMO表空間間defaultt_dataafile_home11/col /elecc/sys44/demoo1.dbffdefaultt_dataafile_home11/col /elecc/sys44/demoo2.dbff公司系統四部摹摹擬演示系統統物理文件HUMAN表空空間defaultt_dataafile_home11/col/elec/humann/humaan.dbff公司人事部人事事管理系統物物理文件BOOK表

27、空間間defaultt_dataafile_home11/col/elec/book/book.dbf公司資料室圖書書管理系統物物理文件QUESTIOON表空間defaultt_dataafile_home11/col/elec/cliennt/queestionn.dbf公司客戶服務部部問題庫系統統物理文件PC表空間defaultt_dataafile_home11/col/chaoxxun/cllient/pc.dbbf公司PC機售后后服務系統物物理文件表空間defaultt_dataafile_home22/等等說明:其中deefaultt_dataafile_home11指oraccl

28、e_hoome/dbbs;defaultt_dataafile_home22指較為空閑閑的硬盤資源源分區路徑。、物理文件的的大小根據應應用系統的數數據量、數據據對象、程序序包的多少來來定。一般用用于摹擬演示示的小系統,表表空間初始的的物理文件為為2M即能滿足足要求,如果果信息量滿,還還可以增加物物理文件,擴擴充表空間(每次擴充大大小也可暫定定為2M);一般般實際運行的的應用系統可可適當增加表表空間初始的的物理文件大大小,但也不不要一次分配配太大(因為為不易回收空空間,卻易擴擴充空間),這這也需要根據據具體情況具具體分析:信信息量大、需需長時間保存存的應用在條條件允許情況況下,表空間間可以大到幾

29、幾百M甚至上上G;信息量量小、短期經經常刷新的應應用,表空間間可以控制在在2M以下。、表空間的名名稱應該采用用同系統應用用相似的英文文字符或字符符縮寫,表空空間所對應的的一個或多個個物理文件名名也應有相關關性。不同用用戶所處的缺缺省表空間不不同,存儲的的信息就不能能互相訪問。這這比把所有用用戶信息都儲儲存在系統表表空間,安全全性大大提高高了。如果用用ORACLLE WEBB SERVVER管理端端口創建的用用戶,其缺省省和臨時表空空間一定是系系統表空間,DDBA切記要要改變用戶的的缺省表空間間。臨時表空空間存放臨時時數據段,處處理一些排序序、合并等中中間操作,根根據實際應用用的需求可以以把它們

30、放在在專門創建的的表空間里;如果系統表表空間大,也也可以把它們們放在系統表表空間。用戶戶創建的數據據索引最好和和數據文件分分開存放在不不同表空間,以以減少數據爭爭用和提高響響應速度。密碼和用戶名名的規范有相當數量的OORACLEE用戶名和密密碼一致,這這是個很不安安全的因素。我我們建議ORRACLE用用戶名和密碼碼一定不要一一樣,密碼最最好在五,六六位字符以上上。不同用戶戶間不應該使使用相同的密密碼。用戶名名的定義可根根據實際應用用的英文名來來設,而依據據編程人員的的姓名定義的的用戶名實際際上不規范,可可在日后的工工作中結合上上述有關存儲儲結構規范的的說明逐步改改進。(3)特殊要求求用戶的規范

31、范在ORACLEE數據庫使用用過程中,還還會遇到一些些有特殊要求求的用戶:非非編程人員需需要對某個表表有查詢、增增加、刪除、修修改的權利。DDBA應創建建一個這樣的的用戶,先確確定用戶名和和密碼,再規規定相關應用用所在缺省表表空間(包含含某個表)和和臨時表空間間,最后TAABLE屬主主給其授權:賦予CONNNECT角角色SELEECT、INNSERT、DDELETEE、UPDAATE ONN THE TABLEE的對象級權權限,這可根根據實際需求求自由取舍。舉例:給新用用戶授于對象象級權限(命命令行方式):假設新用戶NEEW2需要有有查詢、刪除除、修改DCCD用戶的表表EMP。%svrmgrr

32、lSVRMGRconneect innternaal; 以系系統管理員登登錄SVRMGRcreatte useer neww2 ideentifiied byy new22345 ddefaullt tabblespaace appp;SVRMGRconneect dccd/dcddpwd; 以dcd用用戶登錄SVRMGRgrantt connnect tto neww2;SVRMGRgrantt seleect onn emp to neew2;SVRMGRgrantt deleete onn emp to neew2;SVRMGRgrantt updaate onn emp to neew

33、2;說了這么多關于于用戶的問題題,那么接下下來我們就詳詳細得說一下下關于密碼文文件的使用以以及維護-在Oraccle數據庫庫系統中,用用戶如果要以以特權用戶身身份(INTTERNALLSYSDDBASYYSOPERR)登錄Orracle數數據庫可以有有兩種身份驗驗證的方法:即使用與操操作系統集成成的身份驗證證或使用 OOraclee數據庫的密密碼文件進行行身份驗證。因因此,管理好好密碼文件,對對于控制授權權用戶從遠端端或本機登錄錄Oraclle數據庫系系統,執行數數據庫管理工工作,具有重重要的意義。Oracle數數據庫的密碼碼文件存放有有超級用戶IINTERNNALSYYS的口令及及其他特權用

34、用戶的用戶名名口令,它它一般存放在在ORACLLE_HOMMEDATTABASEE目錄下。密碼文件的創創建:在使用Oraccle Innstancce Mannager創創建一數據庫庫實例的時侯侯,在ORAACLE_HHOMEDDATABAASE目錄下下還自動創建建了一個與之之對應的密碼碼文件,文件件名為 PWWDSID.ORA,其其中SID代代表相應的OOraclee數據庫系統統標識符。此此密碼文件是是進行初始數數據庫管理工工作的基礎。在在此之后,管管理員也可以以根據需要,使使用工具ORRAPWD.EXE手工工創建密碼文文件,命令格格式如下:C: ORRAPWD FILE= FILLENAM

35、EE PAASSWORRD = PASSWWORD ENTRRIES=各命令參數的含含義為:FILENAMME:密碼文文件名;PASSWORRD:設置IINTERNNALSYYS帳號的口口令;MAX_USEERS:密碼碼文件中可以以存放的最大大用戶數,對對應于允許以以SYSDBBASYSSOPER權權限登錄數據據庫的最大用用戶數。由于于在以后的維維護中,若用用戶數超出了了此限制,則則需要重建密密碼文件,所所以此參數可可以根據需要要設置得大一一些。有了密碼文件之之后,需要設設置初始化參參數REMOOTE_LOOGIN_PPASSWOORDFILLE來控制密密碼文件的使使用狀態。設置初始化參參數R

36、EMOOTE_LOOGIN_PPASSWOORDFILLE:在Oraclee數據庫實例例的初始化參參數文件中,此此參數控制著著密碼文件的的使用及其狀狀態。它可以以有以下幾個個選項:NONE:指示示Oraclle系統不使使用密碼文件件,特權用戶戶的登錄通過過操作系統進進行身份驗證證;EXCLUSIIVE:指示示只有一個數數據庫實例可可以使用此密密碼文件。只只有在此設置置下的密碼文文件可以包含含有除INTTERNALLSYS以以外的用戶信信息,即允許許將系統權限限SYSOPPERSYYSDBA授授予除INTTERNALLSYS以以外的其他用用戶。SHARED:指示可有多多個數據庫實實例可以使用用此

37、密碼文件件。在此設置置下只有INNTERNAALSYSS帳號能被密密碼文件識別別,即使文件件中存有其他他用戶的信息息,也不允許許他們以SYYSOPERRSYSDDBA的權限限登錄。此設設置為缺省值值。在REMOTEE_LOGIIN_PASSSWORDDFILE 參數設置為為EXCLUUSIVE、SSHAREDD情況下,OOraclee系統搜索密密碼文件的次次序為:在系系統注冊庫中中查找ORAA_SID_PWFILLE參數值(它它為密碼文件件的全路徑名名);若未找找到,則查找找ORA_PPWFILEE參數值;若若仍未找到,則則使用缺省值值ORACLLE_HOMMEDATTABASEE PWDDS

38、ID.OORA;其中中的SID代代表相應的OOraclee數據庫系統統標識符。向密碼文件中中增加、刪除除用戶:當初始化參數 REMOTTE_LOGGIN_PAASSWORRDFILEE設置為EXXCLUSIIVE時,系系統允許除IINTERNNALSYYS以外的其其他用戶以管管理員身份從從遠端或本機機登錄到Orracle數數據庫系統,執執行數據庫管管理工作;這這些用戶名必必須存在于密密碼文件中,系系統才能識別別他們。由于于不管是在創創建數據庫實實例時自動創創建的密碼文文件,還是使使用工具ORRAPWD.EXE手工工創建的密碼碼文件,都只只包含INTTERNALLSYS用用戶的信息;為此,在實實

39、際操作中,可可能需要向密密碼文件添加加或刪除其他他用戶帳號。由于僅被授予SSYSOPEERSYSSDBA系統統權限的用戶戶才存在于密密碼文件中,所所以當向某一一用戶授予或或收回 SYYSOPERRSYSDDBA系統權權限時,他們們的帳號也將將相應地被加加入到密碼文文件或從密碼碼文件中刪除除。由此,向向密碼文件中中增加或刪除除某一用戶,實實際上也就是是對某一用戶戶授予或收回回SYSOPPERSYYSDBA系系統權限。要進行此項授權權操作,需使使用SYSDDBA權限(或或INTERRNAL帳號號)連入數據據庫,且初始始化參數REEMOTE_LOGINN_PASSSWORDFFILE的設設置必須為E

40、EXCLUSSIVE。具具體操作步驟驟如下:創建相應的密碼碼文件;設置初始化參數數REMOTTE_LOGGIN_PAASSWORRDFILEEEXCLLUSIVEE;使用SYSDBBA權限登錄錄: CONNNECT SYSiinternnal_usser_paassswoord ASS SYSDDBA;啟動數據庫實例例并打開數據據庫;創建相應用戶帳帳號,對其授授權(包括SSYSOPEER和SYSSDBA): 授予權限限:GRANNT SYSSDBA TTO useer_namme;收回權限:REEVOKE SYSDBBA FROOM useer_namme;現在這些用戶可可以以管理員員身份登錄

41、數數據庫系統了了;使用密碼文件件登錄:有了密碼文件后后,用戶就可可以使用密碼碼文件以SYYSOPERRSYSDDBA權限登登錄Oraccle數據庫庫實例了,注注意初始化參參數 REMMOTE_LLOGIN_PASSWWORDFIILE應設置置為EXCLLUSIVEE或SHARRED。任何何用戶以SYYSOPERRSYSDDBA的權限限登錄后,將將位于SYSS用戶的Scchema之之下,以下為為兩個登錄的的例子:1. 以管理員員身份登錄:假設用戶scoott已被授授予SYSDDBA權限,則則他可以使用用以下命令登登錄:CONNECTT scottttigger ASS SYSDDBA2. 以IN

42、TTERNALL身份登錄:CONNECTT INTEERNALINTERRNAL_PPASSWOORD密碼文件的維維護:1. 查看密碼碼文件中的成成員:可以通過查詢視視圖V$PWWFILE_USERSS來獲取擁有有SYSOPPERSYYSDBA系系統權限的用用戶的信息,表表中SYSOOPERSSYSDBAA列的取值TTRUEFFALSE表表示此用戶是是否擁有相應應的權限。這這些用戶也就就是相應地存存在于密碼文文件中的成員員。2. 擴展密碼碼文件的用戶戶數量:當向密碼文件添添加的帳號數數目超過創建建密碼文件時時所定的限制制(即ORAAPWD.EEXE工具的的MAX_UUSERS參參數)時,為為擴

43、展密碼文文件的用戶數數限制,需重重建密碼文件件,具體步驟驟如下:a) 查詢視圖圖V$PWFFILE_UUSERS,記記錄下擁有SSYSOPEERSYSSDBA系統統權限的用戶戶信息;b) 關閉數據據庫;c) 刪除密碼碼文件;d) 用ORAAPWD.EEXE新建一一密碼文件;e) 將步驟aa中獲取的用用戶添加到密密碼文件中。3. 修改密碼碼文件的狀態態:密碼文件的狀態態信息存放于于此文件中,當當它被創建時時,它的缺省省狀態為SHHARED。可可以通過改變變初始化參數數 REMOOTE_LOOGIN_PPASSWOORDFILLE的設置改改變密碼文件件的狀態。當當啟動數據庫庫事例時,OOracle

44、e系統從初始始化參數文件件中讀取 RREMOTEE_LOGIIN_PASSSWORDDFILE參參數的設置;當加載數據據庫時,系統統將此參數與與口令文件的的狀態進行比比較,如果不不同,則更新新密碼文件的的狀態。若計計劃允許從多多臺客戶機上上啟動數據庫庫實例,由于于各客戶機上上必須有初始始化參數文件件,所以應確確保各客戶機機上的初始化化參數文件的的一致性,以以避免意外地地改變了密碼碼文件的狀態態,造成數據據庫登陸的失失敗。4. 修改密碼碼文件的存儲儲位置:密碼文件的存放放位置可以根根據需要進行行移動,但作作此修改后,應應相應修改系系統注冊庫有有關指向密碼碼文件存放位位置的參數或或環境變量的的設置

45、。5. 刪除密碼碼文件:在刪除密碼文件件前,應確保保當前運行的的各數據庫實實例的初始化化參數REMMOTE_LLOGIN_PASSWWORDFIILE皆設置置為NONEE。在刪除密密碼文件后,若若想要以管理理員身份連入入數據庫的話話,則必須使使用操作系統統驗證的方法法進行登錄。但是管理員都覺覺得乏味,因因為在管理員員中流行一種種很簡單的加加密辦法-就是經常,很很頻繁地修改改自己的密碼碼。可是,每每次修改都跟跟打一次仗似似的-因為為更新程序并并不是每個人人都愿意做的的事情。那么有沒有什么么簡單點的辦辦法呢?請往往下看:模型:Oraccle7.33;開發工具具:Deveelope22000。收收費

46、系統(在在數據庫中的的名稱是SFFYY),其其Cliennt端分散在在市區的數個個營業點,通通過城域網與與主機(小型型 機)相連連。過程:在收費小型機機Oraclle系統的ssystemm用戶(DBBA)下,創創建新用戶ttest;create user testidentiffied bby carrtondefaultt tabllespacce dattaspacce1quota 1100K對test用用戶授以權限限;grant ccreatee sesssion tto tesst;grant rresourrce too testt;在test用用戶下建立一一個存儲函數數mmtraa

47、nslatte,它其實實是一個加密密程序。下面面是一個簡 單的例子。functioon mmttransllate(mm varcchar2)return varchhar2asi numbeer(2);kk varcchar2(10);beginkk:=;i:=1;loopif i00 thennkk:=kk|chr(100+tto_nummber(ssubstrr(m,i,1);elseif instrr(wxyyz,suubstr(m,i,11),1,11)0 tthenkk:=kk|chr(-8+asscii(ssubstrr(m,i,1);elsekk:=kk|chr(4+ascci

48、i(suubstr(m,i,11);end if;elseexit;end if;i:=i+1;end looop;return kk;exceptiionwhen otthers thenreturn -1;end;在test用用戶下建表mmmtestt并插入記錄錄:create tablee mmteest(usnameevarchhar2(66),-用戶戶名稱mimavarrchar22(6)-加加密前的密碼碼);insert into mmtesst vallues( sfyyy,edds2);commit;執行以下語句句SQLsellect mmmtrannslatee(edss2)

49、 ffrom ddual;MMTRANSSLATE(EDS22)-ihwf利用DBA權限限更改sfyyy的密碼為為上面語句的的執行結果:alter uuser ssffyidentiffied bby ihwwf; ;修改應用程序序,對于開發發環境是Deeveloppe20000的程序來說說,主要是修修改主程序的的on-loo gon觸觸發器:declareemm varcchar2(6);beginlogon(test,carrton);select mima into mm frrom mmmtest wheree usnaame=ssfyy;mm:=mmttransllate(mmm);

50、logout;logon(sfyy,mm);end;然后再利用觸發發器WHENN-NEW-FROM-INSTAANCE執行行Callffrom或NNewforrm等 命令令,進入業務務處理程序。這這個主程序應應當僅僅由管管理員來掌握握,編譯之后后將執行文件件下發 到各各收費點的CClien端端。在Systeem用戶下,利利用Oraccle提供的的pupblld.sqll,建立表PProducctuserrprofiile,執行行下面這樣的的命令,限制制在非開發狀狀態Sql命命令的使用,例如insert into produuctuseerproffile(producct,useerid,aa

51、ttribbute,ccharvaalue) valuees(SQL*PPlus,TESTT,COONNECTT,DIISABLEED);insert into produuctuseerproffile(producct,useerid,aattribbute,ccharvaalue) valuees(SQL*PPlus,SFYYY,DEELETE,DISSABLEDD);這樣樣,在SQLL狀態下,根根本無法連接接到TESTT用戶,而在在 sfyyy用戶下,ddeletee命令將不能能執行。當然然,DBA可可以改變這些些設置。當然了,這個僅僅僅是屬于一一種“應用技技巧”,但是是足可以把那那些

52、每天忙于于更新系統的的管理員舒服服好幾天了。但但是另一方面面,還要加強強對源程序的的管理,在CClientt端只存放執執行程序。加加強審計,發發現異常現象象,及時處理理。這樣才可可以做到更高高一層的“安安全”。在下面,我主要要是向大家介介紹一個REEM對GHXXXB制立數數據庫觸發子子,密碼的加加密程序。REM 對GHHXXB制立立數據庫觸發發子(當INNSERT OR UPPDATE GHXXBB時觸發)drop trriggerr scjmmmm;create or reeplacee triggger sscjmmmmbefore inserrt or updatte of mm Onn

53、 ghxxxb Forr eachh RowBegin:new.mmm:=ENCCRYPT(:new.mm,:NNEW.GHH,TO_CCHAR(SSYSDATTE,SSS);End;/-密碼的加密密程序ENCCRYPT-Create or ReeplaceeFunctioon ENCCRYPT (Inpaass Inn Varcchar2,IN_GHH In VVarchaar2,INN_SS IIn Varrchar22)Return Varchhar2 IIsbcs varrchar22(20);bcs1 nuumber;cs numbber;jg numbber;m_gh VAARCH

54、ARR2(4);m_mm VAARCHARR2(20);Beginm_gh:=IIN_GH;m_mm:=IINPASSS;cs:=TO_NUMBEER(IN_SS);If cs=1 theen cs:=77 ;end iif;bcs:=suubstr(to_chhar(asscii(ssubstrr(m_ghh,1,1),1,2);If bcs133;jg:=jg*cs ;End looop;RETURN(IN_SSS|subbstr(tto_chaar(jg),1,144);End;/總結上面的東西西,我們僅僅僅是從自身做做起,知道了了怎么維護OOraclee數據庫安全全這個話題的的“皮毛”

55、。可可是,對于這這個似乎永遠遠也說不完的的話題,我們們光知道怎么么從內部“防防御”就夠了了嗎?不要忘忘了,在外面面,還有一群群虎視耽耽的的“hackker”在盯盯著你的數據據庫-因為為這里面有他他們想要的東東西。所以,請大家關關注好下一個個話題:2.不被“hhackerr”入侵的幾幾個建議我們的目標是:沒有蛀牙!(開個玩笑笑!呵呵)其其實應該是:它應盡可能能地堵住潛在在的各種漏洞洞,防止非法法用戶利用它它們侵入數據據庫系統。對對于數據庫數數據的安全問問題,數據庫庫管理員可以以參考有關系系統雙機熱備備份功能以及及數據庫的備備份和恢復的的資料。以下就數據庫系系統不被非法法用戶侵入這這個問題作進進一

56、步的闡述述。 組和安全性性:在操作系系統下建立用用戶組也是保保證數據庫安安全性的一種種有效方法。OOraclee程序為了安安全性目的一一般分為兩類類:一類所有有的用戶都可可執行,另一一類只DBAA可執行。在在Unix環環境下組設置置的配置文件件是/etcc/grouup,關于這這個文件如何何配置,請參參閱Unixx的有關手冊冊,以下是保保證安全性的的幾種方法:(1)在安裝OOraclee Servver前,創創建數據庫管管理員組(DDBA)而且且分配rooot和Oraacle軟件件擁有者的用用戶ID給這這個組。DBBA能執行的的程序只有7710權限。在在安裝過程中中SQL*DDBA系統權權限命

57、令被自自動分配給DDBA組。(2) 允許一一部分Uniix用戶有限限制地訪問OOraclee服務器系統統,增加一個個由授權用戶戶組的Oraacle組,確確保給Oraacle服務務器實用例程程Oraclle組 IDD,公用的可可執行程序,比比如SQL*Plus,SSQL*foorms等,應應該可被這組組執行,然后后該這個實用用例程的權限限為710,它它將允許同組組的用戶執行行,而其他用用戶不能。(3)改那些不不會影響數據據庫安全性的的程序的權限限為711。(注注:在我們的的系統中為了了安裝和調試試的方便,OOraclee數據庫中的的兩個具有DDBA權限的的用戶Syss和Systtem的缺省省密碼

58、是maanagerr。為了您數數據庫系統的的安全,我們們強烈建議您您該掉這兩個個用戶的密碼碼,具體操作作如下:在SQL*DBBA下鍵入:alter uuser ssys inndentiified by paassworrd;alter uuser ssystemm indeentifiied byy passsword;其中passwword為您您為用戶設置置的密碼。Oraclee服務器實用用例程的安全全性:以下是保護Orracle服服務器不被非非法用戶使用用的幾條建議議:(1) 確保$ORACLLE_HOMME/binn目錄下的所所有程序的擁擁有權歸Orracle軟軟件擁有者所所有;(2)

59、 給所有有用戶實用便便程(sqiiplus,sqifoorms,eexp,immp等)7111權限,使使服務器上所所有的用戶都都可訪問Orracle服服務器;(3) 給所有有的DBA實實用例程(比比如SQL*DBA)7700權限。OOraclee服務器和UUnix組當當訪問本地的的服務時,您您可以通過在在操作系統下下把Oraccle服務器器的角色映射射到Unixx的組的方式式來使用Unnix管理服服務器的安全全性,這種方方法適應于本本地訪問。在Unix中指指定Oraccle服務器器角色的格式式如下:ora_sidd_rolee_dlaa其中 sid 是您Oraacle數據據庫的oraacle_

60、ssid;role 是OOraclee服務器中角角色的名字;d (可選)表表示這個角色色是缺省值;a (可選選)表示這個個角色帶有WWITH AADMIN選選項,您只可可以把這個角角色授予其他他角色,不能能是其他用戶戶。以下是在/ettc/grooup文件中中設置的例子子:ora_tesst_osooper_dd:NONEE:1:jiim,narrry,sccottora_tesst_osddba_a:NONE:3:pattora_tesst_rolle1:NOONE:4:bob,jjane,ttom,maary,jiimbin: NOONE:5:root,oraclle,dbaaroot:N

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論