SQLServer是由美國 Microsoft公司推出的一個為分散式客戶機/服務器操作所設計的關系型數(shù)據(jù)庫管理系統(tǒng),能和WindowsNT良好兼容,為管理企業(yè)相關日常事務性信息提供了很好的解決方案。因此,SQLServer數(shù)據(jù)庫在各行各業(yè)中得到了廣泛的應用。筆者以SQLserver數(shù)據(jù)庫為對象,對數(shù)據(jù)庫的實際操作中的安全因素進行探究,比如:搜索、數(shù)據(jù)庫設密、查尋、信息分析、驗證、報表、數(shù)據(jù)整合、備份、同步功能、審計功能、訪問控制、存儲原理、恢復和并發(fā)控制原理等,并提出一些行之有效的解決措施,以實現(xiàn)加強數(shù)據(jù)庫的安全管理。
過去大多數(shù)人只關心計算機操作系統(tǒng)和互聯(lián)網(wǎng)安全方面的因素,對數(shù)據(jù)庫安全因素沒有引起足夠的重視。然而,數(shù)據(jù)庫中往往存儲了大量重要的、多樣的企業(yè)以及政府等機構的信息,維系著電子商務活動、企業(yè)資源計劃等商業(yè)系統(tǒng)的正常運行。雖然,在當前的計算機操作系統(tǒng)中采用了多種安全保障手段,但是數(shù)據(jù)的整體性與合理性仍存在著許多安全隱患,包括:密碼攻略、系統(tǒng)漏洞、數(shù)據(jù)庫安全操作、網(wǎng)絡病毒以及自身的安全方案缺失。正因為對數(shù)據(jù)庫的安全措施沒有引起足夠的重視,所以導致這些安全問題的發(fā)生。為此,我們就關于SQLserver數(shù)據(jù)庫的安全防范措施進行探析。
(1)數(shù)據(jù)的完整性。一方面數(shù)據(jù)庫完整性(Database Integrity)體現(xiàn)在數(shù)據(jù)庫中數(shù)據(jù)的合理性和兼容性。而此時的數(shù)據(jù)庫完整性存在一定的限制條件,其實也能把數(shù)據(jù)庫完整性的設計理解成數(shù)據(jù)庫完整性限制條件的設計。因此,可以避免合法用戶操作數(shù)據(jù)庫時往數(shù)據(jù)庫中添加不合理的數(shù)據(jù)。另一方面數(shù)據(jù)庫中的數(shù)據(jù)的完整性也體現(xiàn)在物理完整性和邏輯完整性兩方面。物理完整性意思是能夠使數(shù)據(jù)庫中的數(shù)據(jù)免受一些不利的物理因素(如硬件出錯、瞬間停電等)影響,甚至遇到的災難性毀壞后還可以重建和修復數(shù)據(jù)庫;邏輯完整性則負責保護數(shù)據(jù)庫的邏輯結構,包含數(shù)據(jù)的句義完整性和使用完整性。數(shù)據(jù)的句義完整性是指在邏輯基礎上限制數(shù)據(jù)的存取,數(shù)據(jù)的使用完整性則是指在確保并發(fā)事務中前后數(shù)據(jù)的準確性。
(2)數(shù)據(jù)的保密性。數(shù)據(jù)的保密性指數(shù)據(jù)庫中的數(shù)據(jù)不會發(fā)生泄露以及被非法獲取。一般采用授權訪問,訪問時相同數(shù)據(jù)時根據(jù)授權權限的不同來限制存取的權限,另外還要針對用戶的訪問操作行為進行記錄和統(tǒng)計。
(3)數(shù)據(jù)的合理性。數(shù)據(jù)庫的合理性是指數(shù)據(jù)庫不應限制合法用戶對數(shù)據(jù)的合理操作,并能實現(xiàn)人機互動功能以及保證高效的系統(tǒng)運行效率。
(1)管理數(shù)據(jù)庫用戶。按登錄方式來分類,SQL Server數(shù)據(jù)庫有兩種登錄使用賬戶:一種是由SQL Server數(shù)據(jù)庫負責管理其他登錄時需確定身份的賬戶,即管理員賬戶;另一種是從互聯(lián)網(wǎng)上登錄到SQL Server的普通賬戶。部分普通登錄賬戶會在初裝SQL Server后自己生成,當然也可以按實際需要來建立普通登錄賬戶。但這種登錄賬戶只可以連接到相關服務器上,還不具備查詢?nèi)魏螖?shù)據(jù)的能力。只有通過身證驗證后,才可以登錄數(shù)據(jù)庫進行查詢。從建立在服務器上的登錄賬戶到成為數(shù)據(jù)庫的用戶,這種實現(xiàn)方式稱之為“映射”。因此一個普通登錄賬戶可以直接體現(xiàn)在數(shù)據(jù)庫系統(tǒng)中和管理者賬戶所需的工作量,而數(shù)據(jù)庫管理者賬戶就是一個擁有特殊權限的用戶,或者具備此權限的一組賬戶。所以數(shù)據(jù)庫管理者賬戶必須擁有非常高的信任度。
(2)普通用戶的身份確定。數(shù)據(jù)庫系統(tǒng)、計算機操作系統(tǒng)和網(wǎng)絡在線服務都可以進行普通數(shù)據(jù)庫賬戶身份識別,再由服務器操作系統(tǒng)進一步確認,雙層驗證可以保證用戶的身份安全。
(3)操作系統(tǒng)管理權限。權限有三種類型:對象權限、語句權限、隱含權限。對象權限為用戶操作數(shù)據(jù)庫中文字、圖片等信息的權限;語句權限為可否使用DDL語句的權限;隱含權限為所屬角色和對象擁有者的權限。權限管理內(nèi)容也有三種:授予權限、收回權限、拒絕權限,分別為允許、收回或拒絕某種操作權。負責數(shù)據(jù)庫管理者一定要有相關重要文件的操作系統(tǒng)權限;普通數(shù)據(jù)庫用戶不能有此權限。系統(tǒng)管理員具備修改操作系統(tǒng)賬戶安全性區(qū)域的權限,才能為普通數(shù)據(jù)庫用戶分配角色。
(4)用戶安全措施。為了保障數(shù)據(jù)庫的安全性,必須要求登錄用戶采取一定的安全性措施,其中包括設置登錄密碼和相應大小的權限。比如:針對一個擁有眾多登錄用戶的大型數(shù)據(jù)庫,該數(shù)據(jù)庫管理者應將用戶組分門別類,方便對登錄用戶的權限進行管控。
(5)管理權限管控。數(shù)據(jù)庫服務器與普通用戶、管理賬戶與數(shù)據(jù)庫的鏈接,都以角色為手段對管理者的權限進行管控。
(6)數(shù)據(jù)庫程序設計員管理措施。原數(shù)據(jù)庫程序設計員的權限與開發(fā)環(huán)境要確認,給予free和controlled等軟件設計授權。
SQL SERVER的數(shù)據(jù)庫安全性問題,有幾個具體的操作過程或步驟,下面一一探究:
(1)身份識別。首先用戶登錄數(shù)據(jù)庫時需要提供相應的ID和密碼,在某些認證基礎上數(shù)據(jù)庫系統(tǒng)會對用戶的身份進行嚴格的審核,在得到身份識別后才會獲得相應的權限。windows NT身份識別和混合身份識別這兩種身份識別方式都可用于 SQL SERVER的數(shù)據(jù)庫。其中前者比后者更安全可靠,強調(diào)使用windows NT身份識別方式后登錄SQL SERVER數(shù)據(jù)庫系統(tǒng),以減少來自因特網(wǎng)工具的入侵,更得利于計算機本身安全防御系統(tǒng)的幫助,并將登錄密碼放置于服務器端避免漏洞出現(xiàn)。
(2)訪問限制。當某個SQL SERVER數(shù)據(jù)庫用戶經(jīng)SQL Serer數(shù)據(jù)庫認證后登錄成功,能否完成某個操作指令,決定于其的使用權限范圍。SQL serer數(shù)據(jù)庫系統(tǒng)從用戶的類別中,運用GRANT等相關語句來限制其權限,這很好地實現(xiàn)自主訪問限制目標。根據(jù)權限大小來分類,SQL SERVER的用戶可分為:數(shù)據(jù)庫系統(tǒng)管理者用戶、數(shù)據(jù)庫擁有者用戶、普通用戶。如何實現(xiàn)SQL Serer高效管理目的,可充分利用角色的概念,只需為權限大小相同的用戶創(chuàng)建一個角色并限定其相應的權限,再將這些用戶變成該權限角色下的成員。如有需要,只需對角色的權限進行設置操作,就可以達到所屬于該角色全部成員用戶同時設置的目的,該措施可完美解決相應的管理難題,極大的方便了日常管理。
(3)觸發(fā)報警。監(jiān)測探頭正常工作時會自動完成所在區(qū)域的監(jiān)控,得到相關的操作信息,比如:登錄用戶名、當前系統(tǒng)用戶、數(shù)據(jù)庫系統(tǒng)名稱、SQL語句、操作完成情況(成功或者失敗)等信息,再將這些信息轉(zhuǎn)格式后傳送至分析機,分析系統(tǒng)按一定的準則,識別這些信息中對數(shù)據(jù)庫安全可能產(chǎn)生不利影響的操作,同時控制臺負責接收報警信息并觸發(fā)報警,最后由管理員完成對危險源 IP地址的阻斷。具體實施阻斷任務的是探頭,而管理員發(fā)出的阻斷命令先由分析機送到探頭并借助系統(tǒng)自身 API函數(shù)實施阻斷。
(4)具體命令的傳送。按一定規(guī)則格式化后的擁有固定格式的數(shù)據(jù)或命令,可以通過指定的端口,在探頭、分析機、控制臺之間進行傳送。控制臺可維護更新分析機和探頭,并查詢其運行狀態(tài)??刂婆_負責發(fā)出指令,經(jīng)分析機篩選后傳達至響應模塊執(zhí)行命令。其中上達下傳的命令都是由特定端口進行傳遞。
(5)定期備份。最有效的防范手段就是定期給數(shù)據(jù)庫備份。具體操作可以用數(shù)據(jù)庫服務器來完成。
SQL Serer在不斷更新中將會面臨更多的安全性問題,應積極重視其實際功能所需及特點,不斷完善相應安全措施,才能有效提高數(shù)據(jù)庫使用效率,保障其安全運行。