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