『数据库』无聊到爆炸的数据库文章--数据库的安全性
『數據庫』 樸實無華且枯燥的數據庫教程–入門必看!(不收藏,真的吃虧了)
文章目錄
- 計算機安全性概述
- 數據庫安全性控制
- 視圖機制
- 審計(Audit)
- 數據加密
- 統計數據庫安全性
問題的提出
- 數據庫的一大特點是數據可以共享
- 數據共享必然帶來數據庫的安全性問題
- 數據庫系統中的數據共享不能是無條件的共享
計算機安全性概述
一、計算機安全性
計算機系統安全性
為計算機系統建立和采取的各種安全保護措施,以保護計算機系統中的硬件、軟件及數據,防止其因偶然或惡意的原因使系統遭到破壞,數據遭到更改或泄露等。
三類計算機系統安全性問題
- 技術安全類
- 管理安全類
- 政策法律類
二、安全標準簡介
1. TCSEC/TDI標準的基本內容
從四個方面來描述安全性級別劃分的指標
?安全策略
?責任
?保證
?文檔
2.TCSEC/TDI安全級別劃分
? 按系統可靠或可信程度逐漸增高
? 各安全級別之間:偏序向下兼容
B2以上的系統:還處于理論研究階段
CC
? 提出國際公認的表述信息技術安全性的結構
? 把信息產品的安全要求分為:安全功能要求、安全保證要求
CC文本組成
? 簡介和一般模型
? 安全功能要求
? 安全保證要求
數據庫安全性控制
概述
1. 非法使用數據庫的情況
? 用戶編寫一段合法的程序繞過DBMS及其授權機制,通過操作系統直接存取、修改或備份數據庫中的數據;
? 直接或編寫應用程序執行非授權操作
? 通過多次合法查詢數據庫從中推導出一些保密數據
? 破壞安全性的行為可能是無意的,故意的,惡意的
2. 數據庫安全性控制的常用方法
? 用戶標識和鑒定
? 存取控制
? 視圖
? 審計
? 密碼存儲
一、用戶標識與鑒別
系統提供的最外層安全保護措施
基本方法
? 系統提供一定的方式讓用戶標識自己的名字或身份;
? 系統內部記錄著所有合法用戶的標識;
? 每次用戶要求進入系統時,由系統核對用戶提供的身份標識;
? 通過鑒定后才提供機器使用權。
? 用戶標識和鑒定可以重復多次
用戶標識自己的名字或身份
? 簡單易行,容易被人竊取
? 系統提供一個隨機數
? 用戶根據自己預先約定的計算過程或者函數進行計算
? 系統根據用戶計算結果是否正確鑒定用戶身份
二、 存取控制
1. 存取控制機制組成
? 定義用戶權限
? 合法權限檢查
2. 用戶權限定義和合法權限檢查機制一起組成了DBMS的安全子系統
3.常用存取控制方法
? 自主存取控制(Discretionary Access Control ,簡稱DAC): C2級;靈活
? 強制存取控制(Mandatory Access Control,簡稱 MAC):B1級;嚴格
4.自主存取控制方法
5.強制存取控制方法
三、自主存取控制方法
?數據對象
?操作類型
四、授權與回收
1.GRANT
1)一般格式:
2)語義:
將對指定操作對象的指定操作權限授予指定的用戶
發出GRANT:
?DBA
?數據庫對象創建者(即屬主Owner)
?擁有該權限的用戶
按受權限的用戶
?一個或多個具體用戶
?PUBLIC(全體用戶)
WITH GRANT OPTION子句:
? 指定:可以再授予
? 沒有指定:不能傳播
不允許循環授權
2.REVOKE
1)授予的權限可以由DBA或其他授權者用REVOKE語句收回
2)REVOKE語句的一般格式為:
SQL靈活的授權機制
? 不同的權限授予不同的用戶
? GRANT:授予其他用戶
? “繼續授權”許可:再授予
3.創建數據庫模式的權限
1)DBA在創建用戶時實現
2)CREATE USER語句格式
五、數據庫角色
被命名的一組與數據庫操作相關的權限
? 角色是權限的集合
? 可以為一組具有相同權限的用戶創建一個角色
? 簡化授權的過程
1. 角色的創建
CREATE ROLE <角色名>2. 給角色授權
GRANT <權限>[,<權限>]… ON <對象類型>對象名 TO <角色>[,<角色>]3.將一個角色授予其他的角色或用戶
GRANT <角色1>[,<角色2>]… TO <角色3>[,<用戶1>]… [WITH ADMIN OPTION]4.角色權限的收回
REVOKE <權限>[,<權限>]… ON <對象類型> <對象名> FROM <角色>[,<角色>]…六、強制存取控制方法
自主存取控制缺點
1. 強制存取控制(MAC)
? 保證更高程度的安全性
? 用戶不能直接感知或進行控制
? 適用于對數據有嚴格而固定密級分類的部門:軍事部門;政府部門
2. 主體是系統中的活動實體
? DBMS所管理的實際用戶
? 代表用戶的各進程
3. 客體是系統中的被動實體,是受主體操縱的
? 文件
? 基表
? 索引
? 視圖
4. 敏感度標記(Label)
? 絕密(Top Secret)
? 機密(Secret)
? 可信(Confidential)
? 公開(Public)
主體的敏感度標記稱為許可證級別(Clearance Level)
客體的敏感度標記稱為密級(Classification Level)
5.強制存取控制規則
(1)僅當主體的許可證級別大于或等于客體的密級時,
該主體才能讀取相應的客體
(2)僅當主體的許可證級別等于客體的密級時,該主體
才能寫相應的客體
修正規則
主體的許可證級別 <=客體的密級 → 主體能寫客體
規則的共同點
禁止了擁有高許可證級別的主體更新低密級的數據對象
6.MAC與DAC
1)DAC與MAC共同構成DBMS的安全機制
2)實現MAC時要首先實現DAC
? 原因:較高安全性級別提供的安全保護要包含較低級別的所有保護
DAC + MAC安全檢查示意圖
視圖機制
? 主要功能是提供數據獨立性,無法完全滿足要求
? 間接實現了支持存取謂詞的用戶權限定義
審計(Audit)
一、什么是審計
? 審計日志(Audit Log)
將用戶對數據庫的所有操作記錄在上面
? DBA利用審計日志
找出非法存取數據的人、時間和內容
? C2以上安全級別的DBMS必須具有
二、審計分類
1.用戶級審計
?針對自己創建的數據庫表或視圖進行審計
?記錄所有用戶對這些表或視圖的一切成功和(或)不成功的訪問要求以及各種類型的SQL操作
2.系統級審計
?DBA設置
?監測成功或失敗的登錄要求
?監測GRANT和REVOKE操作以及其他數據庫級權限下的操作
三、審計功能的可選性
? 審計很費時間和空間
? DBA可以根據應用對安全性的要求,靈活地打開或關閉審計功能。
AUDIT語句:設置審計功能
NOAUDIT語句:取消審計功能
數據加密
防止數據庫中數據在存儲和傳輸中失密的
有效手段
一、加密的基本思想
? 根據一定的算法將原始數據(術語為明文,Plain text)變換為不可直接識別的格式(術語為密文,Cipher text)
? 不知道解密算法的人無法獲知數據的內容
二、加密方法
1.替換方法
?使用密鑰(Encryption Key)將明文中的每一個字符轉換為密文中的一個字符
2.置換方法
將明文的字符按不同的順序重新排列
3.混合方法
美國1977年制定的官方加密標準:數據加密標準(Data Encryption Standard,簡稱DES)
三、DBMS中的數據加密
? 有些數據庫產品提供了數據加密例行程序
? 有些數據庫產品本身未提供加密程序,但提供了
接口
數據加密功能通常也作為可選特征,允許用戶自由選擇
? 數據加密與解密是比較費時的操作
? 數據加密與解密程序會占用大量系統資源
? 應該只對高度機密的數據加密
統計數據庫安全性
一、統計數據庫的特點
? 允許用戶查詢聚集類型的信息(例如合計、平均
值等)
? 不允許查詢單個記錄信息
二、 統計數據庫中特殊的安全性問題
? 隱蔽的信息通道
? 從合法的查詢中推導出不合法的信息
規則1:任何查詢至少要涉及N(N足夠大)個以上的記錄
規則2:任意兩個查詢的相交數據項不能超過M個
規則3:任一用戶的查詢次數不能超過1+(N-2)/M
數據庫安全機制的設計目標:
試圖破壞安全的人所花費的代價 >> 得到的利益
寫在最后:
本數據庫專欄是由愛吃老談酸菜的DV一同完成的,博客鏈接在主頁友鏈,是我的好哥們?
Name:風骨散人,目前是一名雙非在校大學生,預計考研,熱愛編程,熱愛技術,喜歡分享,知識無界,希望我的分享可以幫到你!名字的含義:我想有一天我能有能力隨心所欲不逾矩,不總是向生活低頭,有能力讓家人擁有富足的生活而不是為了生計而到處奔波。“世人慌慌張張,不過是圖碎銀幾兩。偏偏這碎銀幾兩,能解世間惆悵,可讓父母安康,可護幼子成長 …”
文章主要內容:
Python,C++,C語言,JAVA,C#等語言的教程
ACM題解、模板、算法等,主要是數據結構,數學和圖論
設計模式,數據庫,計算機網絡,操作系統,計算機組成原理
Python爬蟲、深度學習、機器學習
計算機系408考研的所有專業課內容
目前還在更新中,先關注不迷路。微信公眾號,cnblogs(博客園),CSDN同名“風骨散人”
如果有什么想看的,可以私信我,如果在能力范圍內,我會發布相應的博文!
感謝大家的閱讀!😘你的點贊、收藏、關注是對我最大的鼓勵!
總結
以上是生活随笔為你收集整理的『数据库』无聊到爆炸的数据库文章--数据库的安全性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为2023年首场发布会定档2月8日 超
- 下一篇: 『数据库』这篇数据库的文章真没人看--数