【数据库】数据库安全性
目錄
前言:
一、數(shù)據(jù)庫安全概述
1.數(shù)據(jù)庫的不安全因素
2.安全標準
TCSEC/TDI安全級別劃分:
二、數(shù)據(jù)庫安全性控制
1.用戶身份鑒定
2.存取控制
3.自主存取控制
(1)GRANT(向用戶授予對數(shù)據(jù)的操作權(quán)限)
(2)REVOKE(回收用戶對數(shù)據(jù)的操作權(quán)限)
(3)數(shù)據(jù)庫角色
4.強制存取控制
5.視圖機制
6.審計
7.數(shù)據(jù)加密
(1)存儲加密
(2)傳輸加密
8.其他安全保護
(1)推理控制
(2)隱蔽通道
(3)數(shù)據(jù)隱私
前言:
數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法使用造成數(shù)據(jù)的泄漏、更改或破壞。
數(shù)據(jù)庫系統(tǒng)中由于大量數(shù)據(jù)集中存放,而眾多的用戶直接共享數(shù)據(jù),從而使得數(shù)據(jù)庫安全問題尤為突出。
一、數(shù)據(jù)庫安全概述
1.數(shù)據(jù)庫的不安全因素
(1)非授權(quán)用戶對數(shù)據(jù)庫的惡意存取和破壞。
(2)數(shù)據(jù)庫中重要或敏感的數(shù)據(jù)被泄漏。
(3)安全環(huán)境的脆弱性
2.安全標準
1999年CC(通用準則) V2.1版成為國際標準(2001年被我國采用為國家標準)。
TCSEC/TDI安全級別劃分:
二、數(shù)據(jù)庫安全性控制
數(shù)據(jù)庫安全性主要包括用戶身份鑒定、多層存取控制、審計、視圖和數(shù)據(jù)加密等。
1.用戶身份鑒定
用戶身份鑒定是數(shù)據(jù)庫管理系統(tǒng)提供的最外層安全保護措施。每個用戶在系統(tǒng)中擁有一個用戶標識(由用戶名和用戶標識號兩部分組成)。
常用的用戶身份鑒定方法:
(1)靜態(tài)口令鑒別
靜態(tài)口令一般由用戶自己設(shè)定,鑒別時按要求輸入正確的口令,系統(tǒng)將允許用戶使用數(shù)據(jù)庫管理系統(tǒng)。例如:電話、生日等
(2)動態(tài)口令鑒定
每次鑒別時均使用動態(tài)產(chǎn)生的新口令登錄數(shù)據(jù)庫管理系統(tǒng),即采用一次一密的方法。例如:短信密碼、動態(tài)令牌等
(3)生物特征鑒別
采用圖像處理和模式識別等技術(shù)實現(xiàn)基于生物特征的認證,例如:指紋、虹膜等
(4)智能卡鑒別
登錄數(shù)據(jù)庫管理系統(tǒng)時用戶將智能卡插入專用的讀卡器進行身份驗證。
?
2.存取控制
存取控制機制包括定義用戶權(quán)限和合法權(quán)限檢查兩部分。
(1)定義用戶權(quán)限(用戶對某一數(shù)據(jù)對象的操作權(quán)力),將用戶權(quán)限登記到數(shù)據(jù)字典中
(2)合法權(quán)限檢查(用戶發(fā)出存取數(shù)據(jù)庫的操作請求后,數(shù)據(jù)庫管理系統(tǒng)就和查找數(shù)據(jù)字典,進行合法權(quán)限檢查,對超出權(quán)限的操作,系統(tǒng)拒絕執(zhí)行此操作)
?
3.自主存取控制
SQL標準對于自主存儲控制提供了相關(guān)支持,通過?grant?和 revoke 實現(xiàn)。
用戶權(quán)限:數(shù)據(jù)庫對象+操作類型
授權(quán):定義存取權(quán)限
在非關(guān)系數(shù)據(jù)庫中,用戶只能對數(shù)據(jù)進行操作,存取控制的數(shù)據(jù)庫對象也僅限于數(shù)據(jù)本身。
在關(guān)系數(shù)據(jù)庫中,存取控制的對象不僅有數(shù)據(jù)本身(基本表的數(shù)據(jù)、屬性列上的數(shù)據(jù)),還有數(shù)據(jù)庫模式(包括模式、基本表、視圖、索引等的創(chuàng)建)
關(guān)系數(shù)據(jù)庫系統(tǒng)中的存取權(quán)限:
(1)GRANT(向用戶授予對數(shù)據(jù)的操作權(quán)限)
一般語法規(guī)則:
GRANT <權(quán)限>... ON <對象類型><對象名>,.. TO <用戶> [with grant option]【注意】
接受權(quán)限的用戶可以是一個或多個具體用戶,也可以是public(全體用戶)。
指定了with grant option,則獲得某種用戶權(quán)限的用戶還可以將此權(quán)限再授予其他用戶(不允許循環(huán)授權(quán))。如果沒有此語句,獲得某權(quán)限的用戶只能使用該權(quán)限,不能傳播權(quán)限。?
(2)REVOKE(回收用戶對數(shù)據(jù)的操作權(quán)限)
一般語法規(guī)則:
REVOKE <權(quán)限>... ON <對象類型><對象名>,.. FROM <用戶>...[CASCADE|RESTRICT]【注意】
cascade(級聯(lián))
用戶可以自主決定將數(shù)據(jù)的存取權(quán)限授予任何人、決定是否授權(quán)的權(quán)限授予別人,因此稱這種存取控制為自主存取控制。
(3)數(shù)據(jù)庫角色
數(shù)據(jù)庫角色是被命名的一組與數(shù)據(jù)庫操作相關(guān)的權(quán)限,角色是權(quán)限的集合。
可以為一組具有相同權(quán)限的用戶創(chuàng)建一個角色,使用角色來管理數(shù)據(jù)庫權(quán)限可以簡化授權(quán)的過程。
①角色創(chuàng)建
create role <角色名>②給角色授權(quán)
grant <權(quán)限1>,<權(quán)限2>... ON <對象類型>對象名 TO <角色1>,<角色2>...③將一個角色授予其他的角色或用戶
grant <角色1><角色2>... TO <角色3><用戶>... [with admin option]授予者或角色創(chuàng)建者擁有這個角色的admin option。
指定了with admin option子句,則獲得某種權(quán)限的角色或用戶還可以把這個權(quán)限再授予其他角色。
④角色權(quán)限的回收
REVOKE <權(quán)限1>,<權(quán)限2>... ON <對象類型>對象名 from <角色1>,<角色2>...?
4.強制存取控制
強制存取控制中,數(shù)據(jù)庫管理系統(tǒng)所管理的全部實體分為主體和客體兩大類。
主體:系統(tǒng)中的活動實體,既包括數(shù)據(jù)庫管理系統(tǒng)所管理的實際用戶,也包括代表用戶的各進程。
客體:系統(tǒng)中的被動實體,是受主體操縱的,包括文件、基本表、索引、視圖等。
對于主體和客體,數(shù)據(jù)庫管理系統(tǒng)為它們每個實例指派一個敏感度標記。
敏感度標記分級:絕密(Top Secret,TS),機密(Secret,S),可信(Confidential,C),公開(public,P)密級逐次遞減
強制存取控制對數(shù)據(jù)本身進行密級標記,無論數(shù)據(jù)如何復(fù)制,標記與數(shù)據(jù)是一個不可分的整體,只有符合密級標記要求的用戶才可以操縱數(shù)據(jù),從而提供更高級別的安全性。
?
5.視圖機制
可以為不同的用戶定義不同的視圖,把數(shù)據(jù)對象限制在一定的范圍內(nèi)。即通過視圖機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動對數(shù)據(jù)提供一定程度的安全保護。
?
6.審計
審計功能是數(shù)據(jù)庫管理系統(tǒng)達到C2以上安全級別必不可少的指標。
審計功能把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志(audit log)。審計員可以利用審計日志監(jiān)控數(shù)據(jù)庫中的各種行為,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容。
審計通常是很費時間和空間的,所有數(shù)據(jù)庫管理系統(tǒng)往往都將審計設(shè)置為可選特征,允許數(shù)據(jù)庫管理員根據(jù)具體應(yīng)用對安全性的要求靈活打開或關(guān)閉審計功能。、
(1)審計事件
①服務(wù)器事件:數(shù)據(jù)庫服務(wù)器的啟動、停止、服務(wù)器配置文件的重新加載
②系統(tǒng)權(quán)限:對系統(tǒng)擁有的結(jié)構(gòu)或模式對象進行操作的審計
③語句事件:對特定模式對象進行select和數(shù)據(jù)定義語言操作的審計。
(2)審計功能
- 提供多種審計閱讀方式
- 提供多套審計規(guī)則
- 提供審計分析和報表功能
- 審計日志管理功能(防止審計員誤刪審計記錄)
- 系統(tǒng)提供查詢審計設(shè)置及審計記錄信息的專門視圖。
(3)audit(設(shè)置審計功能)和NOAUDIT(取消審計功能)
數(shù)據(jù)庫安全審計系統(tǒng)提供了一個事后檢查的安全機制。
?
7.數(shù)據(jù)加密
加密基本思想:根據(jù)一定算法將原始數(shù)據(jù)(明文)變換為不可直接識別的格式(密文),從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。
數(shù)據(jù)加密包括存儲加密和傳輸加密。
(1)存儲加密
存儲加密一般提供透明和非透明兩種存儲加密方式。
透明加密是內(nèi)核級加密保護方式,對用戶完全透明;非透明加密是通過多個加密函數(shù)實現(xiàn)。
透明存儲加密是數(shù)據(jù)在寫到磁盤時對數(shù)據(jù)進行加密,授權(quán)用戶讀取數(shù)據(jù)時在對其進行解密。
(2)傳輸加密
在客戶/服務(wù)器結(jié)構(gòu)中,數(shù)據(jù)庫用戶與服務(wù)器之間若采用明文方式傳輸數(shù)據(jù),容易被網(wǎng)絡(luò)惡意用戶截獲或篡改,存在網(wǎng)絡(luò)安全隱患。因此為了保證兩者之間安全數(shù)據(jù)交換,數(shù)據(jù)庫管理系統(tǒng)提供了傳輸加密功能。
①鏈路加密
鏈路加密對傳輸數(shù)據(jù)在鏈路層進行加密,它的傳輸信息由報頭和報文兩部分組成,前者是路由選擇信息,而后者是傳送的數(shù)據(jù)信息。這種方式對報頭和報文都加密。
②端到端加密
端到端加密對傳輸數(shù)據(jù)在發(fā)送端加密,接收端解密。它只對報文加密,不加密報文頭。(容易被非法監(jiān)聽者發(fā)現(xiàn)并從中獲取敏感信息)
基于安全套接層協(xié)議SSL(Security Socket Layer)的數(shù)據(jù)傳輸方案。通信雙方協(xié)議建立可信連接,一次會話采用一個密鑰,傳輸數(shù)據(jù)在發(fā)送端加密,接收端解密,有效降低重放攻擊和惡意篡改
?
8.其他安全保護
(1)推理控制
推理控制機制用來避免用戶利用其能夠訪問的數(shù)據(jù)推知更高密級的數(shù)據(jù),即用戶利用其被允許的多次查詢的結(jié)果,結(jié)合相關(guān)領(lǐng)域背景知識以及數(shù)據(jù)之間的約束,推導(dǎo)出其不能訪問的數(shù)據(jù)。
(2)隱蔽通道
利用未被強制存取控制的SQL執(zhí)行后反饋的信息進行間接信息傳遞。
高安全等級用戶按事先約定方式主動向低安全等級用戶傳輸信息,使得信息流從高安全等級向低安全等級流動,從而導(dǎo)致高安全等級敏感信息泄露。
(3)數(shù)據(jù)隱私
控制不愿被他人知道或他人不便知道的個人數(shù)據(jù)的能力。
?
總結(jié)
以上是生活随笔為你收集整理的【数据库】数据库安全性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库安全管理
- 下一篇: java - 数据库账号的加密解密