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