馮 娜 張振霞 陳成華
【摘 要】本文對數(shù)據(jù)庫安全的內(nèi)涵和要求及數(shù)據(jù)庫管理系SQL Serer的安全防護機制,如身份認證、訪問控制、完整性保障、訪問審計、數(shù)據(jù)加密與視圖、存儲過程等進行了詳細分析和研究。
【關(guān)鍵詞】數(shù)據(jù)庫 數(shù)據(jù)庫安全機制 SQL serer
1 數(shù)據(jù)庫安全的內(nèi)涵
數(shù)據(jù)庫安全是指保護數(shù)據(jù)庫以防止非法用戶的越權(quán)使用、竊取、更改或破壞數(shù)據(jù)。與其它計算機系統(tǒng)(如操作系統(tǒng))的安全要求類似,數(shù)據(jù)庫系統(tǒng)的安全要求可以歸納為完整性、保密性和可用性三個方面。
(1)完整性
數(shù)據(jù)庫的完整性主要包括物理完整性和邏輯完整性。物理完整性是指保證數(shù)據(jù)庫的數(shù)據(jù)不受物理故障(如硬件故障、突然斷電等)的影響,并有可能在災難性毀壞時重建和恢復數(shù)據(jù)庫,邏輯完整性是指對數(shù)據(jù)庫邏輯結(jié)構(gòu)的保護,包括數(shù)據(jù)的語義完整性和操作完整性。前者是指數(shù)據(jù)存取在邏輯上滿足完整性約束,后者主要是指在并發(fā)事務中保證數(shù)據(jù)的一致性。
(2)保密性
保密性指保護數(shù)據(jù)庫中的數(shù)據(jù)不被泄露和未授權(quán)的獲取,一般要求對用戶進行訪問授權(quán),同一組數(shù)據(jù)的不同用戶可以被授予不同的存取權(quán)限.同時還要求能夠?qū)τ脩舻脑L問操作行為進行跟蹤和審計。
(3)可用性
數(shù)據(jù)庫的可用性是指數(shù)據(jù)庫不應拒絕授權(quán)用戶對數(shù)據(jù)的正常操作,同時保證系統(tǒng)的運行效率并提供用戶良好的人機交互。
2 SQL SERVER的數(shù)據(jù)庫安全機制
2.1身份驗證
對用戶的身份認證是數(shù)據(jù)庫管理系統(tǒng)提供的最外層安全保護措施,其方法是用戶進入系統(tǒng)時通過輸入ID和密碼,向系統(tǒng)出示自己的身份證明,系統(tǒng)通過嚴格的認證機制對用戶身份進行審查核實,經(jīng)過確認后才提供與之相對應的系統(tǒng)服務。SQL serer支持windows NT認證模式和混合認證模式兩種身份認證模式。
2.2訪問控制
為了保證用戶只能存取有權(quán)存取的數(shù)據(jù),數(shù)據(jù)庫系統(tǒng)要求對每個用戶定義存取權(quán)限.在SQL SERVER中,用戶是屬于特定的數(shù)據(jù)庫的,數(shù)據(jù)庫用戶與登錄標識相關(guān)聯(lián),一個應用程序使用登錄標識SQL Serer登錄成功后,能否對某個數(shù)據(jù)庫進行操作,由該數(shù)據(jù)庫中是否有相應的數(shù)據(jù)庫用戶來決定。SQL serer可根據(jù)訪問用戶所屬的用戶類型,利用GRANT等語句來對數(shù)據(jù)庫或數(shù)據(jù)庫對象作權(quán)限的控制,能夠較為完善地支持自主訪問控制策略。SQL SERVER將用戶分為四個類型:系統(tǒng)管理員用戶、數(shù)據(jù)庫所有者用戶、數(shù)據(jù)庫對象擁有者用戶和普通用戶,不同的用戶具有不同的權(quán)限。為了達到管理的便利和靈活,SQL Serer引入了角色的概念,可以支持基于角色的訪問控制策略。對于具有相同權(quán)限的用戶,可以創(chuàng)建一個角色并對其賦予權(quán)限,然后將這些用戶添加到該角色中使它們成為這個角色的成員。若要改變這些用戶的權(quán)限,只需對角色的權(quán)限進行設置,不必對每一個用戶進行權(quán)限設置。
2.3審計功能
數(shù)據(jù)庫審計是監(jiān)視和記錄用戶對數(shù)據(jù)庫所施加的各種操作的機制。通過審計機制,可以自動記錄用戶操作,利用審計跟蹤的信息,便于追查有關(guān)責任,也有助于發(fā)現(xiàn)系統(tǒng)安全方面的弱點和漏洞。對于MS SQL SERVER,它能提供較為完善的審計功能,用來監(jiān)視各用戶對數(shù)據(jù)庫施加的動作。SOL SERVER審計方式具體分用戶審計和系統(tǒng)審計2種,審計工作一般通過SQL事件探查器完成。啟用用戶審計功能時,審計系統(tǒng)可記下所有對該數(shù)據(jù)庫表或視圖進行訪問的企圖(包括成功的和不成功的)及每次操作的用戶名、時間、操作代碼等信息;系統(tǒng)審計由系統(tǒng)管理員進行,其審計內(nèi)容主要是系統(tǒng)一級命令以及數(shù)據(jù)庫客體的使用情況。
2.4數(shù)據(jù)庫加密
數(shù)據(jù)庫加密通過將數(shù)據(jù)用密文形式存儲或傳輸?shù)氖侄伪WC高敏感數(shù)據(jù)的安全,這樣可以防止那些企圖通過不正常途徑存取數(shù)據(jù)的行為.SQL serer也提供了加密的功能,以強化對分布式數(shù)據(jù)庫的安全管理。SQL serer使用名為pwdencrypt的哈希函數(shù)來加密隱藏用戶存儲在Master數(shù)據(jù)庫中系統(tǒng)表內(nèi)的密碼,將已定義的視圖、存儲過程、觸發(fā)器等都存儲在系統(tǒng)表syscomments中,SQL Serer提供了內(nèi)部加密機制,可以使用WITH ENCRYPTION語句來進行加密。在條件允許情況下,可以通過啟動相應加密功能讓SQL Serer在通過網(wǎng)絡傳輸數(shù)據(jù)時將數(shù)據(jù)按照SSL協(xié)議加密處理后傳輸。
2.5視圖和存儲過程機制
視圖是從一個或幾個基本表(視圖)中導出的虛表.在數(shù)據(jù)庫系統(tǒng)中,可以利用視圖通過授予用戶操作特定視圖的權(quán)限,限制用戶訪問表的特定行和特定列來保證數(shù)據(jù)的安全,防止用戶對基本表的操作,實現(xiàn)行級或列級的安全性。在SQL serer中,系統(tǒng)較好地支持了視圖定義和訪問機制,如何利用CREATEVIEW語句建立視圖,利用SELECT子句進行視圖訪同等,通過建立視圖以及將視圖表中的不同記錄分成不同的保密級別,甚至將同一字段中的不同值分成不同的保密級別,控制用戶可以看到的數(shù)據(jù),實現(xiàn)安全性。在SQL Serer中存儲過程是存儲于數(shù)據(jù)庫內(nèi)部經(jīng)過編譯可執(zhí)行的SQL語句,它可被其他應用程序調(diào)用執(zhí)行,徹底隱藏了用戶可用的數(shù)據(jù)和數(shù)據(jù)操作中涉及的某些保密處理。存儲過程可用來保護基表的數(shù)據(jù)。為了禁止用戶直接更改基表,可通過存儲過程來更改基表,然后授予用戶具有執(zhí)行該存儲過程的權(quán)力,這就限制了用戶對基表的不當操作,從而保證了數(shù)據(jù)的安全。
2.6備份、恢復和并發(fā)控制機制
為防止系統(tǒng)發(fā)生故障導致重要數(shù)據(jù)的丟失或損壞,保證數(shù)據(jù)庫系統(tǒng)在最短時間內(nèi)恢復運行,數(shù)據(jù)庫管理系統(tǒng)應具備備份和恢復機制。SQL serer支持靜態(tài)備份和動態(tài)備份,并提供了四種備份方案,即完全備份、差異數(shù)據(jù)庫備份、事務日志備份、文件備份.而在系統(tǒng)恢復方式上,SQL serer可以選擇三種模型進行恢復:簡單恢復、完全恢復、批量日志記錄恢復。在SQL serer中,無論是備份或恢復均可方便地通過Transact—SQL語句或企業(yè)管理器來設置。作為網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng),SQL Serer可以提供完善的并發(fā)控制機制,通過支持事務機制來管理多個事務,保證數(shù)據(jù)的一致性,并使用事務日志保證修改的完整性和可恢復性。SQL Serer遵從三級封鎖協(xié)議,從而有效的控制并發(fā)操作可能產(chǎn)生的丟失更新、讀錯數(shù)據(jù)、不可重復讀等錯誤。SQL serer具有多種不同粒度的鎖,允許事務鎖定不同的資源,并能自動使用與任務相對應的等級鎖來鎖定資源對象,以使鎖的成本最小化。
3 結(jié)論
本文就SQL serer數(shù)據(jù)庫管理系統(tǒng)的安全機制進行了全面的探索和研究,數(shù)據(jù)庫的安全是一個非常復雜的課題,它的實現(xiàn)不僅是純粹的技術(shù)問題,而且還需要法律、管理、社會因素的配合,相信隨著信息安全技術(shù)的持續(xù)改進、信息安全管理水平的不斷提高和有關(guān)人員的防范意識的不斷增強,數(shù)據(jù)庫的安全將越來越有保障。
參考文獻:
[1]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2006.
[2]鄭振楣,于戈,郭敏.分布數(shù)數(shù)據(jù)庫[M].北京:科學出版社,1998.
[3]鄒健.中文版SQL serer 2000開發(fā)與管理應用實例[M].北京:人民郵電出版社,2005.
[4]韓衛(wèi),張艷蘇.MIs中數(shù)據(jù)庫安全性研究[J].計算機工程.(作者單位:山東省青州市濰坊教育學院;山東省濰坊衛(wèi)生學校;陜西省西京學院)