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