劉寧+劉滔+王斌
【摘 要】微軟公司的數(shù)據(jù)庫管理系統(tǒng)SQL Server已經(jīng)在越來越多的管理信息系統(tǒng)中布署,隨之而來的數(shù)據(jù)安全與保護問題也越來越重要。SQL Server對于維護數(shù)據(jù)庫管理系統(tǒng)提供了一系列的管理機制。對于這些管理機制本文作一個概括性的總結,以供讀者參考。
【關鍵詞】SQL Server;安全管理
引言
SQL Server是微軟公司開發(fā)的一套數(shù)據(jù)庫管理系統(tǒng),隨著微軟公司的Windows操作系統(tǒng)在桌面領域的強勢布局,以及微軟公司的集成開發(fā)環(huán)境Visual Studio與SQL Server的無縫連接,使得SQL Server的應用極大的豐富,越來越多的管理信息系統(tǒng)在服務器端使用SQL Server。與此同時,數(shù)據(jù)的安全保護越發(fā)的重要,在這一方面,SQL Server提供了諸多的安全管理機制以保障用戶的數(shù)據(jù)安全。
一、SQL Server的安全模型
SQL Server的安全模型共有三個層次,分別是服務器安全、數(shù)據(jù)庫安全和數(shù)據(jù)庫對象的訪問權限安全。
服務器安全針對服務器實例的賬戶、配置、設備等方面的安全管理。
數(shù)據(jù)庫安全針對數(shù)據(jù)庫用戶、數(shù)據(jù)庫的備份、恢復等功能的管理。
數(shù)據(jù)庫對象的訪問權限安全定義用戶對數(shù)據(jù)庫中數(shù)據(jù)對象的引用、數(shù)據(jù)操作語句的許可權限。
二、SQL Server驗證模式
SQL Server有二種身份驗證模式,分別為Windows身份驗證模式和SQL Server身份驗證模式。
Windows身份驗證模式指登錄SQL SERVER系統(tǒng)的用戶身份由Windows系統(tǒng)來進行驗證。SQL SERVER身份驗證又稱為混合驗證模式,是指登錄SQL SERVER系統(tǒng)時,其身份驗證由Windows和SQL SERVER共同進行。
三、登錄管理
使用Windows身份驗證登錄SQL SERVER,該登錄帳戶必須存在于Windows帳戶數(shù)據(jù)庫中。管理員使用系統(tǒng)存儲過程sp_grantlogin來允許一個Windows用戶或組連接到SQL SERVER,或使用sp_denylogin系統(tǒng)存儲過程阻止Windows用戶連接到SQL SERVER,以及使用sp_revokelogin系統(tǒng)存儲過程刪除登錄到SQL SERVER的登錄條目。
使用SQL SERVER身份驗證則必須提供用戶名與密碼,可使用sp_addlogin系統(tǒng)存儲過程來創(chuàng)建新的SQL SERVER登錄,或使用sp_droplogin系統(tǒng)存儲過程刪除SQL SERVER登錄。
四、服務器角色
服務器角色是SQL SERVER服務器安全模型中定義的管理員組,不同的服務器角色具備特定的服務器操作權限,可以為某些用戶指定某些服務器角色,使其具備該角色所具備的權限。固定的服務器角色不能增加、修改和刪除,但服務器角色所分配的用戶可以增加、修改和刪除??墒褂孟到y(tǒng)存儲過程sp_addsrvrolemember和sp_dropsrvrolemember對帳戶進行固定服務器角色的分配與回收。
五、數(shù)據(jù)庫用戶管理
當用戶安全登錄到SQL SERVER服務器后,訪問數(shù)據(jù)庫時的安全則是用戶的數(shù)據(jù)庫訪問權。數(shù)據(jù)庫的訪問權通過數(shù)據(jù)庫的用戶和登錄SQL SERVER服務器的帳戶間的關系來實現(xiàn),是數(shù)據(jù)庫級的安全模型。在每個數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫用戶,使之達到指定帳戶才能夠訪問本數(shù)據(jù)庫,可使用系統(tǒng)存儲過程sp_grantdbacceSQL Server來建立登錄用戶與數(shù)據(jù)庫用戶的映射,使用系統(tǒng)存儲過程sp_revokedbacceSQL Server解除映射關系。
六、數(shù)據(jù)庫角色
固定數(shù)據(jù)庫角色存在于每一個數(shù)據(jù)庫中,管理員可以將任何有效的數(shù)據(jù)庫用戶添加為固定的數(shù)據(jù)庫角色成員,每個成員獲得該角色權限,用戶不能增加、修改、刪除固定數(shù)據(jù)庫角色,管理員可使用系統(tǒng)存儲過程sp_addrolemember將用戶添加到數(shù)據(jù)庫角色中,或使用系統(tǒng)存儲過程sp_droprolemember刪除用戶的某一數(shù)據(jù)庫角色。
用戶自定義角色則是根據(jù)需要,建立具有某種公共許可權限的用戶組??墒褂孟到y(tǒng)存儲過程sp_addrole創(chuàng)建用戶自定義角色或使用系統(tǒng)存儲過程sp_droprole刪除自定義的角色。
初創(chuàng)建的用戶自定義角色的所有者為dbo,且該角色不具有任何權限,需進行權限管理。
還有一類應用程序角色,一般是非活動的,需要用密碼激活,只在應用程序中生效,連接斷開即失效,不作討論。
七、權限管理
語句許可權限指在創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)庫中對象所涉及的活動,所需要的許可權限,包括:Backup Database、Backup Log、Create Database、Create Default、Create Function、Create Procedure、Create Rule、Create Table、Create View。
對象許可權限指用戶操作數(shù)據(jù)庫中的對象所需要的操作權限,包括對數(shù)據(jù)庫對象的SELECT、INSERT、UPDATE、DELETE、EXECUTE權限。
預定義許可權限控制由預定義系統(tǒng)角色的成員或數(shù)據(jù)庫對象所有者執(zhí)行的活動,例如sysadmin固定服務器角色成員自動繼承在SQL SERVER中進行安裝、操作和查看的全部權限等。
使用GRANT語句進行權限的授予,使用DENY語句進行權限的拒絕,使用REVOKE語句進行權限的廢除。
八、結束語
SQL SERVER中的安全管理層次多,從服務器安全、數(shù)據(jù)庫安全到用戶安全等方面,安全管理的方式也較多,固定服務器角色、數(shù)據(jù)庫角色以及用戶權限分配都需要管理員及使用者有較深刻的認識,對數(shù)據(jù)的安全才能起到更好的保護。
參考文獻:
[1]趙杰,李濤,朱慧.SQL Server數(shù)據(jù)庫管理、設計與實現(xiàn)教程[M].清華大學出版,2008.7.
[2]邢紅剛.SQL Server數(shù)據(jù)庫的安全問題的思考[J].科技資訊,2008.
[3]吳溥峰,張玉清.數(shù)據(jù)庫安全綜述[J].計算機工程,2006.