版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章數據庫的安全性22024/2/29第6章數據庫的安全性問題的提出數據庫的一大特點是數據可以共享但數據共享必然帶來數據庫的安全性問題數據庫系統中的數據共享不能是無條件的共享例:軍事秘密、國家機密、新產品實驗數據、市場需求分析、市場營銷策略、銷售計劃、客戶檔案、醫(yī)療檔案、銀行儲蓄數據數據庫中數據的共享是在DBMS統一的嚴格的控制之下的共享,即只允許有合法使用權限的用戶訪問允許他存取的數據數據庫系統的安全保護措施是否有效是數據庫系統主要的性能指標之一32024/2/29第6章數據庫的安全性安全性對于任何一個數據庫管理系統來說都是至關重要的。數據庫安全性是保護數據庫不被非法使用和防止非法用戶惡意造成的破壞,安全性措施的防范對象是非法用戶的進入和合法用戶的非法操作,數據庫完整性則是保護數據庫以防止合法用戶無意造成的破壞而完整性措施主要防范不合語義的數據進入數據庫42024/2/29第6章數據庫的安全性6.1 計算機安全性概述6.2 數據庫安全性概述6.3 用戶標識與鑒別6.4 存取控制6.5 視圖機制6.6 數據加密6.7 數據庫審計6.8 統計數據庫的安全性6.9 SQLServer的安全控制52024/2/29第6章數據庫的安全性什么是數據庫的安全性數據庫的安全性是指保護數據庫,防止因用戶非法使用數據庫造成數據泄露、更改或破壞。安全性問題不是數據庫系統所獨有的,所有計算機系統都有這個問題。只是在數據庫系統中大量數據集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。什么是數據的保密數據保密是指用戶合法地訪問到機密數據后能否對這些數據保密。通過制訂法律道德準則和政策法規(guī)來保證。62024/2/296.1 計算機安全性概述什么是計算機系統安全性為計算機系統建立和采取的各種安全保護措施,以保護計算機系統中的硬件、軟件及數據,防止其因偶然或惡意的原因使系統遭到破壞,數據遭到更改或泄露等。三類計算機系統安全性問題技術安全指計算機系統中采用具有一定安全性的硬件、軟件來實現對計算機系統及其所存數據的安全保護,當計算機系統受到無意或惡意的攻擊時仍能保證系統正常運行,保證系統內的數據不增加、不丟失、不泄露。管理安全政策法律72024/2/296.1計算機安全性概述為了準確地測定和評估計算機系統的安全性能指標,規(guī)范和指導計算機系統的生產,在計算機安全技術方面逐步發(fā)展建立了一套可信(Trusted)計算機系統的概念和標準TCSEC是1985年美國國防部(DoD)頒布的《DoD可信計算機系統評估標準》,又稱桔皮書TDI將TCSEC擴展到數據庫管理系統,定義了數據庫管理系統的設計與實現中需要滿足和進行安全性級別評估的標準,又稱紫皮書。在TCSEC推出后的十年里,不同國家都開始啟動開發(fā)建立在TCSEC概念上的評估準則,這些準則比TCSEC更加靈活。CC(CommonCriteria)項目被發(fā)起,主要目的是解決原標準中概念和技術上的差異,將各自獨立的準則集合成一組單一的、能被廣泛使用的IT安全準則。82024/2/296.1計算機安全性概述信息安全標準的發(fā)展歷史92024/2/296.1計算機安全性概述TCSEC/TDI標準的基本內容TCSEC/TDI從四個方面來描述安全性級別劃分的指標安全策略責任保證文檔102024/2/296.1計算機安全性概述TCSEC/TDI安全級別劃分安全級別
定義A1驗證設計(VerifiedDesign)B3安全域(SecurityDomains)B2結構化保護(StructuralProtection)B1標記安全保護(LabeledSecurityProtection)C2受控的存取保護(ControlledAccessProtection)C1自主安全保護(DiscretionarySecurityProtection)D最小保護(MinimalProtection)112024/2/296.1計算機安全性概述四組(division)七個等級
DC(C1,C2)
B(B1,B2,B3)
A(A1)按系統可靠或可信程度逐漸增高各安全級別之間具有一種偏序向下兼容的關系,即較高安全性級別提供的安全保護要包含較低級別的所有保護要求,同時提供更多或更完善的保護能力122024/2/296.1計算機安全性概述D級將一切不符合更高標準的系統均歸于D組典型例子:DOS是安全標準為D的操作系統,
DOS在安全性方面幾乎沒有什么專門的機制來保障C1級非常初級的自主安全保護能夠實現對用戶和數據的分離,進行自主存取控制(DAC),保護或限制用戶權限的傳播。現有的商業(yè)系統稍作改進即可滿足C1132024/2/296.1計算機安全性概述C2級安全產品的最低檔次提供受控的存取保護,將C1級的DAC進一步細化,以個人身份注冊負責,并實施審計和資源隔離達到C2級的產品在其名稱中往往不突出“安全”(Security)這一特色典型例子操作系統Microsoft的WindowsNT3.5,數字設備公司的OpenVMSVAX6.0和6.1
數據庫:Oracle7、SQLServer2000、Sybase11142024/2/296.1計算機安全性概述B1級標記安全保護。“安全”(Security)或“可信的(Trusted)產品。對系統的數據加以標記,對標記的主體和客體實施強制存取控制(MAC)、審計等安全機制典型例子操作系統數字設備公司的SEVMSVAXVersion6.0惠普公司的HP-UXBLSrelease9.0.9+
數據庫:SybaseSecure11、TrustedOracle152024/2/296.1計算機安全性概述B2級結構化保護建立形式化的安全策略模型并對系統內的所有主體和客體實施DAC和MAC。經過認證的B2級以上的安全系統非常稀少典型例子操作系統:只有TrustedInformationSystems公司的TrustedXENIX一種產品標準的網絡產品:只有CryptekSecureCommunications公司的LLCVSLAN一種產品數據庫:沒有符合B2標準的產品162024/2/296.1計算機安全性概述B3級安全域。該級的TCB必須滿足訪問監(jiān)控器的要求,審計跟蹤能力更強,并提供系統恢復過程。A1級驗證設計,即提供B3級保護的同時給出系統的形式化設計說明和驗證以確信各安全保護真正實現。B2以上的系統還處于理論研究階段應用多限于一些特殊的部門如軍隊等美國正在大力發(fā)展安全產品,試圖將目前僅限于少數領域應用的B2安全級別下放到商業(yè)應用中來,并逐步成為新的商業(yè)標準。172024/2/296.1計算機安全性概述CC標準提出國際公認的表述信息技術安全性的結構把信息產品的安全要求分為:安全功能要求、安全保證要求CC文本組成簡介和一般模型安全功能要求安全保證要求根據系統對安全保證要求的支持情況提出了評估保證級(EAL),從EAL1至EAL7功分為七級,按保證程度逐漸增高182024/2/296.1計算機安全性概述Windows2000,Oracle9i、DB2V8.2等,都已經通過了CC的EAL4。評估保證級定義TCSEC級別EAL1功能測試(functionallytested)EAL2結構測試(structurallytested)C1EAL3系統地測試和檢查C2EAL4系統地設計、測試和復查B1EAL5半形式化設計和測試B2EAL6半形式化驗證的設計和測試B3EAL7形式化驗證的設計和測試A1192024/2/29202024/2/29212024/2/29摘抄自網絡新聞2012年人大金倉KingbaseESV7前不久通過了公安部結構化保護級(第四級)安全認證,國產數據庫安全級別已超越國外同類產品安全四級是國內數據庫產品當前所能達到的最高安全等級,與國際標準相比近似等同于EAL5級。目前,甲骨文等知名廠商的國外數據庫產品,安全級別最高只達到EAL4級?!皣a數據庫產品率先通過安全四級,這對構建我國自主可控的信息安全體系具有重大意義?!?22024/2/29摘抄自網絡新聞2012年達夢數據庫有限公司經過三十余年技術積累,研發(fā)形成了具有完全自主知識產權的DBMS產品系列。達夢數據庫產品是國內第一家通過國家安全三級(B1級)認證(2001年)、國內第一家通過10TB數據庫容量測試(2005年)的數據庫產品(現已通過100TB數據庫容量測試),國內第一家通過中國人民解放軍軍B+級認證的數據庫產品。達夢數據庫有限公司研發(fā)的新一代數據庫管理系統DM7,在安全等級上取得了歷史性地突破,其達到了安全四級,相當于TCSEC/TDI的B2級232024/2/29242024/2/29第6章數據庫的安全性6.1 計算機安全性概述6.2 數據庫安全性概述6.3 用戶標識與鑒別6.4 存取控制6.5 視圖機制6.6 數據加密6.7 數據庫審計6.8 統計數據庫的安全性6.9 SQLServer的安全控制252024/2/296.2
數據庫安全性概述非法使用數據庫的情況用戶編寫一段合法的程序繞過DBMS及其授權機制,通過操作系統直接存取、修改或備份數據庫中的數據直接或編寫應用程序執(zhí)行非授權操作;通過多次合法查詢數據庫從中推導出一些保密數據例:某數據庫應用系統禁止查詢單個人的工資,但允許查任意一組人的平均工資。用戶甲想了解張三的工資:首先查詢包括張三在內的一組人的平均工資然后查用自己替換張三后這組人的平均工資從而推導出張三的工資破壞安全性的行為可能是無意的,故意的,惡意的262024/2/296.2
數據庫安全性概述數據庫的安全性不是獨立的,涉及數據庫的安全機制,也涉及到硬件系統、操作系統、網絡系統的安全機制:(1)數據庫系統層數據庫系統需要保證只允許那些獲得授權的用戶訪問權限范圍內的數據,權限范圍外的數據不允許訪問和修改(2)操作系統層操作系統有自己的安全保護措施。不管數據庫系統多安全,操作系統安全性方面的弱點也會造成數據的不安全隱患。(3)網絡層由于幾乎所有的數據庫系統都允許通過終端或網絡進行遠程訪問,網絡層的安全同樣需要考慮。272024/2/296.2
數據庫安全性概述數據庫系統所采用的安全技術主要包括以下幾類:(1)訪問控制技術:防止未授權的人訪問系統本身,這種安全問題對所有計算機系統都存在。訪問控制技術主要通過創(chuàng)建用戶帳戶和口令、由DBMS控制登錄過程來實現。(2)存取控制技術:DBMS必須提供相應的技術保證用戶只能訪問他的權限范圍內的數據,而不能訪問數據庫的其他內容。(3)數據加密技術:用于保護敏感數據的傳輸和存儲,可以對數據庫的敏感數據提供額外的保護。(4)數據庫審計:審計是在數據庫系統運行期間,記錄數據庫的訪問情況,以利用審計數據分析數據庫是否受到非法存取282024/2/29第6章數據庫的安全性6.1 計算機安全性概述6.2 數據庫安全性概述6.3 用戶標識與鑒別6.4 存取控制6.5 視圖機制6.6 數據加密6.7 數據庫審計6.8 統計數據庫的安全性6.9 SQLServer的安全控制292024/2/296.3用戶標識與鑒別用戶標識和鑒定是保證數據庫安全性的最簡單、最基本的措施,也是系統提供的最外層安全保護措施?;痉椒ㄈ魏螌祿煜到y的訪問都需要通過用戶標識來獲得授權,擁有數據庫登錄權限的用戶才能進入數據庫管理系統常用的方法是采用用戶名(username)或用戶帳號(useraccount),以及口令(password)來標識用戶身份。
302024/2/296.4存取控制存取控制機制的功能數據庫安全最重要的一點就是確保只授權給所有有資格的用戶訪問數據庫的權限,同時令所有未被授權的人員無法接近數據,這主要通過數據庫系統的存取控制機制實現。312024/2/296.4存取控制存取控制機制的組成定義用戶權限在數據庫系統中,為了保證用戶只能訪問他有權存取的數據,必須預先對每個用戶定義存取權限合法權限檢查對于通過鑒定獲得上機權的用戶(即合法用戶),系統根據他的存取權限定義對他的各種操作請求進行控制,確保他只執(zhí)行合法操作。用戶權限定義和合法權限檢查機制一起組成了DBMS的安全子系統。當前大型DBMS都支持C2級中的自主存取控制(DAC),有些DBMS同時還支持B1級中的強制存取控制(MAC)。322024/2/29常用存取控制方法自主存取控制(DiscretionaryAccessControl,DAC)
C2級、靈活同一用戶對于不同的數據對象有不同的存取權限不同的用戶對同一對象也有不同的權限用戶還可將其擁有的存取權限轉授給其他用戶強制存取控制(MandatoryAccessControl,MAC)
B1級、嚴格每一個數據對象被標以一定的密級每一個用戶也被授予某一個級別的許可證對于任意一個對象,只有具有合法許可證的用戶才可以存取332024/2/296.4.1自主存取控制主體(Subject)是指一個提出請求或要求的實體,主體可以是DBMS所管理的實際用戶,或其它任何代表用戶行為的進程、作業(yè)和程序??腕w(Object)是接受其他實體訪問的被動實體,是受主體操縱,客體可以是文件、記錄、視圖等??刂撇呗允侵黧w對客體的操作行為集和約束條件集,即主體對客體的訪問規(guī)則集。在自主存取控制模型中,主體、客體和控制策略構成了一個矩陣,矩陣的列標識主體,矩陣的行表示客體,矩陣中的元素是控制策略(如讀、寫、刪除和修改等)342024/2/296.4.1自主存取控制訪問控制矩陣主體按訪問控制矩陣中的權限要求訪問客體,每個用戶對每個數據對象都要給定某個級別的存取權限,例如讀、寫等。當用戶申請以某種方式存取某個數據對象時,系統根據存取矩陣判斷用戶是否具備此項操作權限,以此決定是否許可用戶執(zhí)行該操作。在自主訪問控制中,訪問控制的實施由系統完成。352024/2/296.4.1自主存取控制通過SQL的GRANT語句和REVOKE語句實現用戶權限組成數據對象操作類型定義用戶存取權限定義用戶可以在哪些數據庫對象上進行哪些類型的操作定義存取權限稱為授權362024/2/296.4.1自主存取控制關系數據庫系統中存取控制對象對象類型對象操作類型數據庫模式CREATESCHEMA基本表CREATETABLE,ALTERTABLE模式視圖CREATEVIEW索引CREATEINDEX數據表和視圖SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALLPRIVILEGES數據屬性列SELECT,INSERT,UPDATE,REFERENCESALLPRIVILEGES372024/2/296.4.1自主存取控制授權粒度授權粒度是指可以定義的數據對象的范圍它是衡量授權機制是否靈活的一個重要指標。授權定義中數據對象的粒度越細,即可以定義的數據對象的范圍越小,授權子系統就越靈活,但系統定義與權限檢查的開銷將增加。關系數據庫中授權的數據對象粒度數據庫、表、屬性列、行能否提供與數據值有關的授權反映了授權子系統精巧程度382024/2/296.4.1自主存取控制實現與數據值有關的授權獨立于數據值的授權是用戶的操作只由數據名決定,無法控制用戶只能存取符合某種條件的數據;如果是與數值相關的授權,則用戶的存取依賴于數據對象的內容,要求系統支持存取謂詞,甚至在謂詞中引用系統變量(終端、時間、路徑),實現與時間地點相關的存取權限。利用存取謂詞,存取謂詞可以很復雜可以引用系統變量,如終端設備號,系統時鐘等,實現與時間地點有關的存取權限,這樣用戶只能在某段時間內,某臺終端上存取有關數據392024/2/291. 自主存取控制的實現大型數據庫管理系統幾乎都支持自主控制存取SQL標準通過GRANT和REVOKE實現自主存取控制SQLServer:語句權限:GRANT{ALL|statement[,...n]}
TOsecurity_account[,...n]對象權限:GRANT
{ALL[PRIVILEGES]|permission[,...n]}
{
[(column[,...n])]ON{table|view}
|ON{table|view}[(column[,...n])]
|ON{stored_procedure|extended_procedure}
|ON{user_defined_function}
}
TOsecurity_account[,...n]
[WITHGRANTOPTION]
[AS{group|role}]402024/2/292. 數據庫角色在用戶數量比較大的情況下,為了便于權限管理,需要引入角色的概念數據庫角色:被命名的一組與數據庫操作相關的權限角色是權限的集合,可以為一組具有相同權限的用戶創(chuàng)建一個角色,簡化授權的過程(1)角色的創(chuàng)建CREATEROLE<角色名>(2)給角色授權
GRANT<權限>[,<權限>]…ON<對象類型>對象名
TO<角色>[,<角色>]…412024/2/292. 數據庫角色(3)將一個角色授予其他的角色或用戶GRANT<角色1>[,<角色2>]…TO<角色3>[,<用戶1>]…[WITHGRANTOPTION](4)角色權限的收回REVOKE<權限>[,<權限>]…ON<對象類型><對象名>FROM<角色>[,<角色>]…422024/2/292. 數據庫角色【例6?1】用戶Wang通過角色實現將一組授權授予用戶Li和Zhao。首先,Wang創(chuàng)建一個角色R1:CREATEROLER1;Wang授予角色R1擁有上面三個關系的查詢權限:GRANTSELECTONTABLESTUDENT,SC,COURSETOR1Wang將角色R1授予用戶Li和Zhao,使他們具有角色R1所包含的全部權限:GRANTR1TOLi,Zhao432024/2/293. 權限的傳播SQL靈活的授權機制DBA:擁有所有對象的所有權限不同的權限授予不同的用戶用戶:擁有自己建立的對象的全部的操作權限GRANT:授予其他用戶被授權的用戶“繼續(xù)授權”許可:再授予所有授予出去的權力在必要時又都可用REVOKE語句收回這樣的存取控制就是自主存取控制。442024/2/293. 權限的傳播自主存取控制優(yōu)點:能夠通過授權機制有效地控制其他用戶對敏感數據的存取自主存取控制缺點:由于存取權限是“自主”的,權限可以傳播,接受授權的用戶就可以“非法”傳播數據,可能存在數據的“無意泄露”原因:這種機制僅僅通過對數據的存取權限來進行安全控制,而數據本身并無安全性標記。解決:對系統控制下的所有主客體實施強制存取控制策略D1D2ABC452024/2/296.4.2 強制存取控制什么是強制存取控制強制存取控制(MAC)是指系統為保證更高程度的安全性,按照TDI/TCSEC標準中安全策略的要求,所采取的強制存取檢查手段。MAC不是用戶能直接感知或進行控制的。MAC適用于對數據有嚴格而固定密級分類的部門軍事部門政府部門462024/2/296.4.2 強制存取控制主體與客體在MAC中,DBMS所管理的全部實體被分為主體和客體兩大類主體是系統中的活動實體
DBMS所管理的實際用戶代表用戶的各進程客體是系統中的被動實體,是受主體操縱的文件基表索引視圖472024/2/296.4.2 強制存取控制強制存取控制策略需要在安全級別基礎上對數據或用戶進行分類,通過對主體和客體的已分配的安全屬性進行匹配判斷,決定主體是否有權對客體進行進一步的訪問操作(1)主體和客體被標記成不同的安全分類級別安全分類級別被分為若干級別,典型的級別是:絕密-TS(TopSecret)、機密-S(Secret)、可信-C(Confidential)和公開(Public)。主體的敏感度標記稱為許可證級別(ClearanceLevel)客體的敏感度標記稱為密級(ClassificationLevel)(2)MAC機制就是通過對比主體的安全級別和客體的安全級別,最終確定主體能否存取客體482024/2/296.4.2 強制存取控制強制存取控制規(guī)則:(1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體;許可證級別低的主體不能讀取安全級別比他高的客體(2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體。規(guī)則2禁止主體寫安全分類級別比他的許可證級別低的客體。如果違反這個規(guī)則,那么就將允許信息從較高的安全級別流向較低的安全級別,這就違反了多級安全性的基本原則492024/2/296.4.2 強制存取控制強制存取控制規(guī)則(續(xù))(1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體;(2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體。規(guī)則修正:主體的許可證級別<=客體的密級
主體能寫客體即用戶可為寫入的數據對象賦予高于自己的許可證級別的密級,一旦數據被寫入,該用戶自己也不能再讀該數據對象了。規(guī)則的共同點:禁止了擁有高許可證級別的主體更新低密級的數據對象,防止敏感數據泄漏502024/2/296.4.2 強制存取控制強制存取控制的特點MAC是對數據本身進行密級標記,無論數據如何復制,標記與數據是一個不可分的整體,只有符合密級標記要求的用戶才可以操縱數據,從而提供了更高級別的安全性MAC與DACDAC與MAC共同構成DBMS的安全機制實現MAC時要首先實現DAC原因:較高安全性級別提供的安全保護要包含較低級別的所有保護512024/2/296.4.2 強制存取控制DAC+MAC安全檢查示意圖
SQL語法分析&語義檢查
DAC檢查安全檢查
MAC檢查
繼續(xù)522024/2/29第6章數據庫的安全性6.1 計算機安全性概述6.2 數據庫安全性概述6.3 用戶標識與鑒別6.4 存取控制6.5 視圖機制6.6 數據加密6.7 數據庫審計6.8 統計數據庫的安全性6.9 SQLServer的安全控制532024/2/296.5視圖機制進行存取權限控制時可以為不同的用戶定義不同的視圖,把數據對象限制在一定范圍內,通過視圖機制把要保密的數據對無權存取的用戶隱藏起來,從而自動地對數據提供一定程度的保護視圖機制更主要的功能在于提供數據獨立性,其安全保護功能并不精細,往往不能達到應用系統的要求視圖機制與授權機制配合使用:首先用視圖機制屏蔽掉一部分保密數據,視圖上面再進一步定義存取權限間接實現了支持存取謂詞的用戶權限定義542024/2/296.5視圖機制例:王平只能檢索計算機系學生的信息先建立計算機系學生的視圖CS_StudentCREATEVIEWCS_StudentASSELECT*FROMStudentWHERESdept=‘CS’;在視圖上進一步定義存取權限,間接實現了支持存取謂詞
GRANTSELECTONCS_StudentTO王平;通過視圖進行權限管理,可以很容易實現行級或列級的訪問控制機制。552024/2/29第6章數據庫的安全性6.1 計算機安全性概述6.2 數據庫安全性概述6.3 用戶標識與鑒別6.4 存取控制6.5 視圖機制6.6 數據加密6.7 數據庫審計6.8 統計數據庫的安全性6.9 SQLServer的安全控制562024/2/296.6數據加密數據加密:防止數據庫中數據在存儲和傳輸中失密的有效手段加密的基本思想根據一定的算法將原始數據(術語為明文,Plaintext)變換為不可直接識別的格式(術語為密文,Ciphertext),不知道解密算法的人無法獲知數據的內容加密方法替換方法:使用密鑰(EncryptionKey)將明文中的每一個字符轉換為密文中的一個字符置換方法:將明文的字符按不同的順序重新排列混合方法:美國1977年制定的官方加密標準:數據加密標準(DataEncryptionStandard,簡稱DES)572024/2/29數據加密(續(xù))DBMS中的數據加密有些數據庫產品提供了數據加密例行程序有些數據庫產品本身未提供加密程序,但提供了接口數據加密功能通常也作為可選特征,允許用戶自由選擇數據加密與解密是比較費時的操作數據加密與解密程序會占用大量系統資源應該只對高度機密的數據加密582024/2/29第6章數據庫的安全性6.1 計算機安全性概述6.2 數據庫安全性概述6.3 用戶標識與鑒別6.4 存取控制6.5 視圖機制6.6 數據加密6.7 數據庫審計6.8 統計數據庫的安全性6.9 SQLServer的安全控制592024/2/296.7審計用戶標識與鑒別、存取控制僅是安全性標準的一個重要方面為了使DBMS達到一定的安全級別,還需要在其他方面提供相應的支持例如按照TDI/TCSEC標準中安全策略的要求。什么是審計審計日志(AuditLog)將用戶對數據庫的所有操作記錄在上面DBA利用審計日志找出非法存取數據的人、時間和內容C2以上安全級別的DBMS必須具有602024/2/296.7審計審計分為用戶級審計針對自己創(chuàng)建的數據庫表或視圖進行審計記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的SQL操作系統級審計DBA設置監(jiān)測成功或失敗的登錄要求監(jiān)測GRANT和REVOKE操作以及其他數據庫級權限下的操作612024/2/296.7審計AUDIT語句:設置審計功能[例]對修改SC表結構或修改SC表數據的操作進行審計
AUDITALTER,UPDATEONSC;NOAUDIT語句:取消審計功能[例]取消對SC表的一切審計
NOAUDITALTER,UPDATEONSC;622024/2/296.7審計審計功能的可選性審計很費時間和空間,DBA可以根據應用對安全性的要求,靈活地打開或關閉審計功能。強制性機制:用戶識別和鑒定、存取控制、視圖預防監(jiān)測手段:審計技術632024/2/296.8統計數據庫安全性統計數據庫的特點允許用戶查詢聚集類型的信息(例如合計、平均值等)不允許查詢單個記錄信息例:允許查詢“程序員的平均工資是多少?”不允許查詢“程序員張勇的工資?”統計數據庫中特殊的安全性問題在統計數據庫中存在著特殊的安全性問題,即可能存在著隱蔽的信息通道,使得可以從合法的查詢中推導出不合法的信息642024/2/29統計數據庫安全性(續(xù))例:下面兩個查詢都是合法的:
1.本公司共有多少女高級程序員?
2.本公司女高級程序員的工資總額是多少?如果第一個查詢的結果是“1”,那么第二個查詢的結果顯然就是這個程序員的工資數規(guī)則1:任何查詢至少要涉及N(N足夠大)個以上的記錄652024/2/29統計數據庫安全性(續(xù))例:用戶A發(fā)出下面兩個合法查詢:1.用戶A和其他N個程序員的工資總額是多少?2.用戶B和其他N個程序員的工資總額是多少?若第一個查詢的結果是X,第二個查詢的結果是Y,由于用戶A知道自己的工資是Z,那么他可以計算出用戶B的工資=Y-(X-Z)。原因:兩個查詢之間有很多重復的數據項規(guī)則2:任意兩個查詢的相交數據項不能超過M個662024/2/29統計數據庫安全性(續(xù))可以證明,在上述兩條規(guī)定下,如果想獲知用戶B的工資額
A至少需要進行1+(N-2)/M次查詢規(guī)則3:任一用戶的查詢次數不能超過1+(N-2)/M
如果兩個用戶合作查詢就可以使這一規(guī)定失效672024/2/29統計數據庫安全性(續(xù))還有其他一些方法用于解決統計數據庫的安全問題例如“數據污染”,也就是回答查詢的時候,提供一些偏離正確值的數據,有意地在統計查詢的結果中引入一些誤差或“噪音”,使從統計查詢的結果中推導出個體信息變得困難,避免數據泄漏。這個偏離要在不破壞統計數據的前提下進行。數據庫安全機制的設計目標:無論采取什么樣的安全機制,都仍然會存在繞過這些機制的途徑試圖破壞安全的人所花費的代價>>得到的利益682024/2/29第6章數據庫的安全性6.1 計算機安全性概述6.2 數據庫安全性概述6.3 用戶標識與鑒別6.4 存取控制6.5 視圖機制6.6 數據加密6.7 數據庫審計6.8 統計數據庫的安全性6.9 SQLServer的安全控制692024/2/296.9.1 SQLServer的安全體系結構SQLServer的安全體系結構分為以下4個等級客戶機操作系統的安全性在使用客戶機通過網絡實現對SQLServer服務器的訪問時,用戶首先要獲得客戶計算機操作系統的使用權SQLServer的登錄安全性SQLServer的服務器級安全性建立在控制服務器登錄賬號和密碼的基礎上。用戶在登錄時提供的登錄賬號和密碼決定了用戶能否獲得SQLServer的訪問權,以及在訪問SQLServer時擁有的權利。702024/2/296.9.1 SQLServer的安全體系結構SQLServer的安全體系結構分為以下4個等級(續(xù))數據庫的使用安全性在建立用戶的登錄賬號信息時,SQLServer會提示用戶選擇默認的數據庫,以后用戶連接服務器就會自動轉到默認的數據庫上。數據庫對象的使用安全性是核查用戶權限的最后一個安全等級,在創(chuàng)建數據庫對象時,SQLServer自動把該數據庫對象的擁有權賦予該對象的創(chuàng)建者。非數據庫擁有者必須獲得對指定對象執(zhí)行特定操作的權限,才能訪問數據庫中的對象。712024/2/296.9.2 登錄管理SQLServer對用戶的訪問進行兩個階段的驗證:驗證階段:用戶首先要登錄到SQLServer上,驗證通過就可以連接到SQLServer上,否則服務器拒絕登錄。驗證階段有兩種驗證模式Windows身份驗證模式:Windows身份驗證模式使用戶得以通過WindowsNT或Windows2000用戶帳戶進行連接。混合模式:用戶可使用Windows身份驗證或者SQLServer身份驗證連接到SQLServer許可確認階段:控制用戶在SQLServer數據庫中所允許進行的活動。722024/2/29身份驗證處理
sysxloginsWindowsWindows組或用戶SQLServer登錄賬戶sysxlogins在sysxlogins表中驗證用戶信任Windows驗證密碼
在sysxlogins
表中驗證用戶和密碼SQLServer在Windows身份驗證模式或混合模式下,通過Windows用戶賬戶連接的用戶,可以使用信任連接732024/2/29Windows身份驗證用戶的網絡安全特性在網絡登錄時建立,并通過Windows域控制器進行驗證。當網絡用戶嘗試連接時,SQLServer使用基于Windows的功能確定經過驗證的網絡用戶名。Windows身份驗證的優(yōu)點WindowsNT/2000安全系統提供更多的功能,如安全驗證和密碼加密、審核、密碼過期、最短密碼長度,以及在多次登錄請求無效后鎖定帳戶。由于WindowsNT/2000用戶和組只由WindowsNT/2000維護,使數據庫管理員的工作可以集中在管理數據庫之上。WindowsNT/2000組策略支持多個用戶同時被授權訪問SQLServer
742024/2/29SQLServer身份驗證當用戶用指定的登錄名稱和密碼從非信任連接進行連接時,就會按照右圖所示的流程進行安全身份驗證752024/2/29混合驗證模式混合驗證模式允許以Windows身份驗證或者SQLServer身份驗證連接到SQLServer。使用哪種模式取決于最初建立通信時使用的網絡庫?;旌向炞C模式優(yōu)點:創(chuàng)建了Windows操作系統之外的一個安全層次,支持更大范圍的用戶,對于連接到客戶端以外的其他客戶端,可能也必須使用SQLServer身份驗證一個應用程序可以使用單個的SQLServer登錄口令、應用程序開發(fā)人員和數據庫用戶也許更喜歡SQLServer身份驗證,因為他們熟悉登錄和密碼功能。762024/2/29創(chuàng)建登錄名在MicrosoftSQLServer2008系統中,許多操作可以通過Transact-SQL語句完成,也可以通過MicrosoftSQLServerManagementStudio工具來完成。Transact-SQL語句創(chuàng)建登錄名在創(chuàng)建登錄名時,既可以通過將Windows登錄名映射到SQLServer系統中,也可以創(chuàng)建SQLServer登錄名772024/2/29創(chuàng)建登錄名使用Windows登錄名創(chuàng)建登錄名782024/2/29創(chuàng)建登錄名創(chuàng)建有默認數據庫的登錄名792024/2/29創(chuàng)建登錄名創(chuàng)建SQLServer登錄名802024/2/29維護登錄名登錄名創(chuàng)建之后,可以根據需要修改登錄名的名稱、密碼、密碼策略、默認的數據庫等信息,可以禁用或啟用該登錄名,甚至可以刪除不需要的登錄名。使用ALTERLOGIN修改登錄名812024/2/29維護登錄名使用ALTERLOGIN修改登錄名的密碼822024/2/29維護登錄名禁用和啟用登錄名832024/2/296.9.3 數據庫用戶管理在SQLServer中,帳戶有兩類,登錄帳戶(loginname)使用數據庫的用戶(username)。登錄帳戶的一次合法的登錄只表明它通過了Windows的驗證或SQLServer的驗證,但不表明它可以對數據庫數據進行某種操作,他只能連接到SQLServer上,并不能訪問任何數據庫數據。如果想進一步訪問SQLServer中的數據庫數據,一個登錄必須與一個或多個數據庫的用戶相關聯后,才能訪問數據庫登錄帳戶必須與每一個需要訪問的數據庫中的用戶帳戶建立映射關系,每個登錄帳戶在一個數據庫中只能有一個用戶帳戶,一個登錄帳戶可以映射為多個數據庫中的用戶。842024/2/296.9.3 數據庫用戶管理數據庫用戶是數據庫級的主體,是登錄名在數據庫中的映射,是在數據庫中執(zhí)行操作和活動的行動者。在MicrosoftSQLServer2008系統中,數據庫用戶不能直接擁有表、視圖等數據庫對象,而是通過架構擁有這些對象。數據庫用戶管理包括創(chuàng)建用戶、查看用戶信息、修改用戶、刪除用戶等操作。創(chuàng)建用戶可以使用CREATEUSER語句在指定的數據庫中創(chuàng)建用戶。由于用戶是登錄名在數據庫中的映射,因此在創(chuàng)建用戶時需要指定登錄名。852024/2/296.9.3 數據庫用戶管理Transact-SQL語法約定:默認數據庫中自動創(chuàng)建兩個用戶:dbo和guest。dbo是具有在數據庫中執(zhí)行所有活動的系統權限(隱含權限)的用戶,隸屬于sa登錄。guest是客戶訪問用戶,沒有隸屬的登錄,擁有public數據庫角色,862024/2/296.9.3 數據庫用戶管理創(chuàng)建登錄名的數據庫用戶:創(chuàng)建帶有默認架構的數據庫用戶872024/2/296.9.3 數據庫用戶管理可以使用ALTERUSER語句修改用戶。修改用戶包括兩個方面,第一,可以修改用戶名;第二可以修改用戶的默認架構:也可以使用ALTERUSER語句修改指定用戶的默認架構,這時可以使用WITHDEFAULT_SCHEMA子句如果用戶不再需要了,可以使用DROPUSER語句刪除數據庫中的用戶。管理架構架構是形成單個命名空間的數據庫實體的集合。架構是數據庫級的安全對象,也是MicrosoftSQLServer2008系統強調的特點,是數據庫對象的容器。管理架構包括創(chuàng)建架構、查看架構的信息、修改架構及刪除架構等。創(chuàng)建架構使用CREATESCHEMA語句不僅可以創(chuàng)建架構,同時還可以創(chuàng)建該架構所擁有的表、視圖并且可以對這些對象設置權限。下面講述如何創(chuàng)建架構。創(chuàng)建一個簡單的架構創(chuàng)建有明確所有者的架構創(chuàng)建架構時同時創(chuàng)建一個表創(chuàng)建架構的同時創(chuàng)建表和管理權限查看數據庫中的架構信息如果要查看數據庫中的架構信息,可以使用sys.schemas架構目錄視圖。該視圖包含了數據庫中架構的名稱、架構的標識符和架構所有者的標識符等信息。修改和刪除架構修改架構是指將特定架構中的對象轉移到其他架構中??梢允褂肁LTERSCHEMA語句完成對架構的修改。需要注意的是,如果要更改對象本身的結構,那么應該使用針對該對象的ALTER語句。轉移對象的架構刪除架構982024/2/296.9.4 權限管理在SQLServer中,權限分為三種(1)對象權限對象權限主要針對數據庫中的表、視圖和存儲過程,決定對這些對象能執(zhí)行哪些操作(2)語句權限語句權限主要指用戶是否具有權限來執(zhí)行某條語句(3)系統權限(隱含權限)系統權限控制那些只能由SQLServer預定義的系統角色的成員或數據庫對象所有者執(zhí)行的活動??梢詫ο髾嘞藓驼Z句權限進行權限設置992024/2/29預定義固定角色對象所有者對象SELECTINSERT UPDATE DELETE
REFERENCESSELECTUPDATE REFERENCESEXECTABLEVIEWCOLUMNSTOREDPROCEDURE語句CREATEDATABASECREATETABLECREATEVIEWCREATEPROCEDURECREATERULECREATEDEFAULTCREATEFUNCTIONBACKUPDATABASEBACKUPLOG1002024/2/296.9.4 權限管理在SQLServer中,使用GRANT語句把權限授予某一用戶以允許該用戶執(zhí)行針對該對象的操作使用REVOKE語句取消用戶對某一對象或語句的權限使用Deny語句是拒絕權限,用來禁止用戶對某一對象或語句的權限【例6?7】給用戶Mary和John以及WindowsNT組Corporate\BobJ授予多個語句權限。語句如下:GRANTCREATEDATABASE,CREATETABLETOMary,John,[Corporate\BobJ]1012024/2/296.9.4 權限管理【例6?8】首先,給public角色授予SELECT權限。然后,將特定的權限授予用戶Mary、John和Tom。GRANTSELECTONauthorsTOpublicGOGRANTINSERT,UPDATE,DELETEONauthorsTOMary,John,TomGO1022024/2/296.9.4 權限管理執(zhí)行針對數據庫授權的GRANT語句1032024/2/296.9.4 權限管理執(zhí)行針對表授權的GRANT語句1042024/2/296.9.4 權限管理如果希望從某個安全主體處收回權限,可以使用REVOKE語句。REVOKE語句是與GRANT語句相對應的,可以把通過GRANT語句授予給安全主體的權限收回。也就是說,使用REVOKE語句可以刪除通過GRANT語句授予給安全主體的權限1052024/2/296.9.4 權限管理收回WITHGRANTOPTION子句形成權限時的錯誤1062024/2/296.9.4 權限管理【例6?11】廢除已授予用戶Joe和Corporate\BobJ的CREATETABLE權限。語句如下:REVOKECREATETABLEFROMJoe,[Corporate\BobJ]它刪除了允許Joe與Corporate\BobJ創(chuàng)建表的權限.與DENY語句不同,如果已將CREATETABLE權限授予給了包含Joe和Corporate\BobJ成員的任何角色,那么Joe和Corporate\BobJ仍可創(chuàng)建表。1072024/2/29否認權限安全主體可以通過兩種方式獲得權限,第一種方式是直接使用GRANT語句為其授予權限,第二種方式是通過作為角色成員繼承角色的權限。使用REVOKE語句只能刪除安全主體通過第一種方式得到的權限,要想徹底刪除安全主體的特定權限必須使用DENY語句。DENY語句的語法形式與REVOKE語句非常類似1082024/2/29授予、拒絕、廢除權限
授予:
能夠執(zhí)行操作廢除:不能執(zhí)行操作但可由角色成員重新設置
拒絕:
不能執(zhí)行操作grant、deny和revoke三種針對權限的操縱在權限的授予和撤銷方面所起的作用如圖所示:
Grant授予權限,在安全系統中創(chuàng)建項目,使當前數據庫中的用戶得以處理當前數據庫中的數據或執(zhí)行特定的Transact-SQL語句Deny拒絕權限;REVOKE刪除以前在當前數據庫內的用戶上授予或拒絕的權限1092024/2/29Northwind.sysusersuidname0137publicdboINFORMATION_SCHEMA
payroll權限存儲在此表Northwind.sysprotectsid1977058079197705807919770580791977058079uid0007action193195196193protecttype205205205205用戶存儲在此表1102024/2/29授予權限以允許訪問下面的示例給用戶Mary和John以及WindowsNT組Corporate\BobJ授予多個語句權限。GRANTCREATEDATABASE,CREATETABLETOMary,John,[Corporate\BobJ]下例顯示權限的優(yōu)先順序。首先,給public角色授予SELECT權限。然后,將特定的權限授予用戶Mary、John和Tom。于是這些用戶就有了對authors
表的所有權限。USEpubsGOGRANTSELECTONauthorsTOpublicGOGRANTINSERT,UPDATE,DELETEONauthorsTOMary,John,TomGO1112024/2/29拒絕權限以阻止訪問下例對多個用戶拒絕多個語句權限。用戶不能使用CREATEDATABASE和CREATETABLE語句,除非給他們顯式授予權限。DENYCREATEDATABASE,CREATETABLETOMary,John,[Corporate\BobJ]下例顯示權限的優(yōu)先順序。首先,給public角色授予SELECT權限。然后,拒絕用戶Mary、John和Tom的特定權限。這樣,這些用戶就沒有對authors表的權限。USEpubsGOGRANTSELECTONauthorsTOpublicGODENYSELECT,INSERT,UPDATE,DELETEONauthorsTOMary,John,Tom1122024/2/29廢除已授予和已拒絕的權限下例廢除已授予用戶Joe和Corporate\BobJ的CREATETABLE權限。它刪除了允許Joe與Corporate\BobJ創(chuàng)建表的權限。不過,如果已將CREATETABLE權限授予給了包含Joe和Corporate\BobJ成員的任何角色,那么Joe和Corporate\BobJ仍可創(chuàng)建表。REVOKECREATETABLEFROMJoe,[Corporate\BobJ]下例廢除授予多個用戶的多個語句權限。REVOKECREATETABLE,CREATEDEFAULTFROMMary,John1132024/2/296.9.5 角色管理在SQLServer中,主要角色類型如下:服務器角色
它是一個固定角色,用于提供對AnalysisServices實例的管理員訪問權限數據庫角色這些角色由管理員定義,用于控制非管理員用戶對對象和數據的訪問權限在MicrosoftSQLServerAnalysisServices中,安全通過角色和權限來管理。角色為用戶組。用戶(也稱為成員)既可向角色中添加,也可從中刪除。對象的權限按照角色來指定,對于某一角色擁有權限的對象,該角色中的所有成員都可使用。角色中的所有成員對這些對象具有相等的權限。1142024/2/29角色權限sysadmin執(zhí)行任何活動dbcreator創(chuàng)建和更改數據庫diskadmin管理磁盤文件processadmin管理SQLServer過程serveradmin配置服務器設置setupadmin安裝復制securityadmin管理和檢查服務器賬戶bulkadmin執(zhí)行BULKINSERT語句1.服務器角色根據SQLServer的管理任務以及這些任務相對的重要性等級來把具有SQLServer管理職能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度購房定金及房屋抵押貸款服務合同
- 2025年度新能源銀行抵押貸款合同書
- 二零二五年度互聯網企業(yè)軟件著作權許可合同范本
- 二零二五年度牲畜代養(yǎng)與科研開發(fā)合作合同
- 二零二五商鋪租賃合同解除與商業(yè)活動調整及裝修補償協議
- 二零二五年度物流運輸保險代理合同
- 二零二五年度購房定金及貸款服務合同
- 二零二五年度知識產權贈與合同范本
- 二零二五年度河道清理與生態(tài)旅游合作合同簡版
- 2025年度跨境電商融資擔保服務合同
- 2025年湖北武漢工程大學招聘6人歷年高頻重點提升(共500題)附帶答案詳解
- 【數 學】2024-2025學年北師大版數學七年級上冊期末能力提升卷
- GB/T 26846-2024電動自行車用電動機和控制器的引出線及接插件
- 三創(chuàng)賽獲獎-非遺文化創(chuàng)新創(chuàng)業(yè)計劃書
- 綠城物業(yè)室內公共區(qū)域清潔作業(yè)規(guī)程
- 封條模板A4直接打印版
- 危險貨物道路運輸企業(yè)安全檢查通用清單
- 用友NC財務軟件操作手冊
- 眼內炎患者護理查房
- 電工維修培訓資料 維修電工技術學習 維修電工常識 電工培訓ppt課件
- 撲克牌24點練習題大全
評論
0/150
提交評論