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