孟龍梅
(滁州職業(yè)技術(shù)學(xué)院,安徽 滁州239000)
隨著計(jì)算機(jī)在各行各業(yè)的廣泛使用、互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫技術(shù)的應(yīng)用范圍也不斷擴(kuò)大。企業(yè)的各種信息都可以通過數(shù)據(jù)庫存儲。數(shù)據(jù)庫可以簡單的理解為存放數(shù)據(jù)的“倉庫”。有些數(shù)據(jù)庫能保存單位幾年甚至是幾十年的各種信息。數(shù)據(jù)庫如果保護(hù)不利,就會給單位和人個(gè)造成不可估量的損失。例如個(gè)人財(cái)產(chǎn)被盜、企業(yè)的數(shù)據(jù)丟失等等。數(shù)據(jù)庫的安全,它直接影響的企業(yè)的發(fā)展,甚者影響企業(yè)的生存。
隨著數(shù)據(jù)庫技術(shù)的發(fā)展,對掌握數(shù)據(jù)庫安全性管理技術(shù)的人員需求與日俱增,對數(shù)據(jù)庫安全控制能力的要求也不斷提高。怎樣才能實(shí)現(xiàn)數(shù)據(jù)庫的安全性管理呢?這就需要學(xué)生對數(shù)據(jù)庫安全性管理方面有足夠的了解。下面以SQL Server 數(shù)據(jù)庫管理系統(tǒng)軟件為例設(shè)計(jì)基于小型企業(yè)的數(shù)據(jù)庫管理的安全性實(shí)驗(yàn)。
某小型企業(yè)已建立采用B/S 結(jié)構(gòu)設(shè)計(jì)的銷售管理系統(tǒng),其后臺數(shù)據(jù)庫名稱為example,products 表和orders 表是example 數(shù)據(jù)庫中的兩張表。要求用戶a~e 能登錄數(shù)據(jù)庫服務(wù)器并按照設(shè)計(jì)的訪問控制權(quán)限訪問相應(yīng)的服務(wù)器及數(shù)據(jù)庫資源,訪問用戶及權(quán)限設(shè)置如表1 所示:
表1 用戶及訪問權(quán)限設(shè)置表
本實(shí)驗(yàn)主要實(shí)現(xiàn)在SQL SERVER 中對數(shù)據(jù)庫安全性的管理問題。首先明確SQL Server 中身份驗(yàn)證的種類和實(shí)現(xiàn)步驟,然后再熟悉為用戶分配登錄賬號和權(quán)限的操作方法,對于SQL Server 安全性的各種管理,尤其是對數(shù)據(jù)庫訪問控制操作有深入要求。要管理數(shù)據(jù)庫安全性,必須了解各種賬號和權(quán)限,因?yàn)榘踩跃褪峭ㄟ^它們的分配來實(shí)現(xiàn)的。所以掌握它們的區(qū)別和用處非常重要。
SQL SERVER 身份驗(yàn)證模式指SQL SERVER如何處理用戶名和密碼的問題,SQL SERVER 提供兩種身份驗(yàn)證模式。
1、Windows 身份驗(yàn)證模式,在這種方式下,用戶只可以使用Windows 身份登陸連接到SQL Server,由Windows 操作系統(tǒng)對客戶端進(jìn)行身份驗(yàn)證。我們知道,SQL Server 和Windows 同屬于微軟公司的產(chǎn)品。當(dāng)使用Windows 身份驗(yàn)證連接到SQL Server時(shí),SQL Server 使用Windows 操作系統(tǒng)中的信息驗(yàn)證賬戶名和密碼,用戶不必重復(fù)提交登錄名和密碼。
這種驗(yàn)證方式的弊端在于若采取B/S 結(jié)構(gòu)服務(wù)器,遠(yuǎn)程客戶機(jī)無法連接到服務(wù)器,這時(shí)須使用混合驗(yàn)證模式。
2、混合驗(yàn)證模式,即可以同時(shí)使用Windows 身份驗(yàn)證和SQL Server 身份驗(yàn)證。使用具體驗(yàn)證方式取決于在最初通信時(shí)使用的網(wǎng)絡(luò)庫。如果一個(gè)用戶使用TCP/IP 進(jìn)行登錄驗(yàn)證,則使用SQL Server 身份驗(yàn)證;如果用戶使用命名管道,則登錄時(shí)將使用Windows 身份驗(yàn)證。[1]
圖1 SQL Server 安全性決策樹
通過以上兩種身份驗(yàn)證模式,用戶如果想使用指定的登錄名稱和密碼連接到SQL Server,SQL Server會按照圖1所示的安全性決策樹進(jìn)行安全身份驗(yàn)證。
本實(shí)驗(yàn)中要實(shí)現(xiàn)在采用B/S結(jié)構(gòu)設(shè)計(jì)的銷售管理系統(tǒng)中讓不同的客戶端用戶能訪問服務(wù)器的數(shù)據(jù)庫資源,所以身份驗(yàn)證模式可以設(shè)置為“SQL Server和Windows身份驗(yàn)證模式”。
1、登錄帳戶
登錄賬戶是讓用戶登錄到SQL Server服務(wù)器中用的賬號,如果用戶不能登錄SQL Server的服務(wù)器,也就不能訪問該服務(wù)器上的數(shù)據(jù)庫資源。在實(shí)驗(yàn)中,需要?jiǎng)?chuàng)建登錄帳戶logina~logine,讓這些帳戶都能登錄數(shù)據(jù)庫服務(wù)器。
2、數(shù)據(jù)庫用戶
一個(gè)SQL Server服務(wù)器下面可以建多個(gè)數(shù)據(jù)庫。能登錄到SQL Server服務(wù)器,不一定能訪問到服務(wù)器中的數(shù)據(jù)庫。在實(shí)驗(yàn)中,需要?jiǎng)?chuàng)建數(shù)據(jù)庫用戶userb~usere,使這些數(shù)據(jù)庫用戶都能訪問sample數(shù)據(jù)庫。
3、角色
為了便于管理數(shù)據(jù)庫的的權(quán)限,SQL Server提供了若干“角色”,“角色”就是用一種方法來把用戶集中到一個(gè)單元中,并在此單元上應(yīng)用權(quán)限。SQL Server提供了預(yù)定義的服務(wù)器角色和數(shù)據(jù)庫角色,也可以在數(shù)據(jù)庫中創(chuàng)建用戶自定義的數(shù)據(jù)庫角色。在實(shí)驗(yàn)中,用到如下兩個(gè)固定的服務(wù)器角色和數(shù)據(jù)庫角色:
sysadmin固定服務(wù)器角色的成員可以在數(shù)據(jù)庫引擎中執(zhí)行任何活動。
db_backupoperat or固定數(shù)據(jù)庫角色的成員可以備份數(shù)據(jù)庫。
由于本實(shí)驗(yàn)中用戶a需要訪問控制全部服務(wù)器資源,即用戶a要求完全的數(shù)據(jù)庫服務(wù)器訪問權(quán)限,所以用戶a應(yīng)設(shè)置為固定服務(wù)器角色sysadmin的成員之一,使之成為服務(wù)器的超級管理員。用戶a的安全訪問流程如圖2所示。
圖2 用戶a 安全訪問流程
用戶b 要能備份數(shù)據(jù)庫,可以將其添加到數(shù)據(jù)庫角色db_backupoperat or 中,用戶b 的安全訪問流程如圖3 所示。
圖3 用戶b 安全訪問流程
用戶c 與用戶d 都要訪問數(shù)據(jù)庫中的表,所不同的是具體的訪問對象及訪問權(quán)限,在實(shí)驗(yàn)中可以創(chuàng)建兩個(gè)自定義的數(shù)據(jù)庫角色R1 和R2,將用戶userc、用戶userd 分別添加到R1 角色R2 角色中。
4、權(quán)限
在為用戶和角色分配登錄帳戶后,還必須為他們分配權(quán)限以增強(qiáng)數(shù)據(jù)庫的安全性。權(quán)限詳細(xì)地說明了可以讓用戶使用哪些數(shù)據(jù)庫對象,并可以對它們進(jìn)行哪些處理。用戶在數(shù)據(jù)庫內(nèi)的權(quán)限取決于用戶帳戶的權(quán)限和該用戶所屬的角色成員。在實(shí)驗(yàn)中為R1 角色授予查詢、修改products 表的權(quán)限,為R2角色授予查詢orders 表的權(quán)限,為用戶usere 添加訪問products 表、orders 表的權(quán)限。用戶c~用戶d 訪問數(shù)據(jù)庫資源的控制方式如圖4 所示。
圖4 用戶c~用戶e 安全訪問流程
該實(shí)驗(yàn)需要每人PC 機(jī)一臺,操作系統(tǒng)為Windows xp 或win7,實(shí)驗(yàn)的數(shù)據(jù)庫管理系統(tǒng)軟件為SQL Server 2005 或SQL Server 2008。
首先用Windows 身份驗(yàn)證方式進(jìn)入SSMS,登陸到數(shù)據(jù)庫引擎。在“對象資源管理器”中右鍵單擊根目錄,彈出“服務(wù)器屬性選擇頁”,在該頁中設(shè)置“安全性”,勾選“Sql Server 和Windows 身份驗(yàn)證模式”后,點(diǎn)擊“確定”按鈕。右鍵單擊數(shù)據(jù)庫服務(wù)器,在彈出的快捷菜單中單擊“停止”,先停止MS SQL Server 服務(wù),然后再右鍵單擊數(shù)據(jù)庫服務(wù)器,在彈出的快捷菜單中選擇“啟動”,將MS SQL Server 服務(wù)重新啟動。
1、創(chuàng)建登錄賬號
在“對象資源管理器”中的“安全性”中右鍵單擊“登錄名”,選擇“新建登錄名…”命令,創(chuàng)建登錄名logina~logine。也可在查詢窗口中輸入命令:
2、創(chuàng)建數(shù)據(jù)庫用戶
展開example 數(shù)據(jù)庫,在其“安全性”中,右鍵單擊“用戶”,選擇“新建用戶…”命令,為example 數(shù)據(jù)庫添加用戶userb~usere。在查詢窗口中的命令如下:
1、固定服務(wù)器角色設(shè)置
在“對象資源管理器”中,依次展開“安全性”、“服務(wù)器角色”,右鍵單擊“sysadmin”服務(wù)器角色,選擇“屬性”命令,在“服務(wù)器角色屬性”選擇頁中,添加用戶usera 到sysadmin 服務(wù)角色里。對應(yīng)在查詢窗口中的命令如下:
2、固定數(shù)據(jù)庫角色設(shè)置
在“對象資源管理器”中,展開example 數(shù)據(jù)庫,依次展開“安全性”中、“角色”、“數(shù)據(jù)庫角色”,找到里面的角色“db_backupoperator”,添加用戶userb 到這個(gè)角色中去。對應(yīng)的命令如下:
3、新建用戶定義的數(shù)據(jù)庫角色
在“對象資源管理器”中,展開example 數(shù)據(jù)庫,依次展開“安全性”中、“角色”,再右鍵單擊“數(shù)據(jù)庫角色”,選擇“新建數(shù)據(jù)庫角色…”命令,為example數(shù)據(jù)庫添加兩個(gè)用戶定義數(shù)據(jù)庫角色R1 和R2,并分別為其添加角色成員“userc”和“userd”。命令如下:
在“對象資源管理器”中,右鍵單擊“R1”角色,選擇“屬性”命令,在彈出的“數(shù)據(jù)庫角色屬性”選擇頁中設(shè)置安全對象為“products”,授予角色對象的增、刪、查、改權(quán)限。同樣可以授予“R2”角色對“orders”的查詢權(quán)限,語句如下:
在“對象資源管理器”中,在“usere”用戶的屬性中添加安全對象為“products”、“orders”,并為之授予對象的增、刪、查、改權(quán)限,語句如下:
分別以用戶a~e 對應(yīng)的登錄賬號登錄到SQL Server 服務(wù)器中,依次校驗(yàn)每個(gè)用戶所對數(shù)據(jù)庫example 能夠進(jìn)行的訪問權(quán)限,例如使用用戶b 的身份登錄,看能否只能備份example 數(shù)據(jù)庫而不能訪問和備份其他數(shù)據(jù)庫;以用戶c 的身份登錄,能否查詢products 表,而不能查詢其它數(shù)據(jù)庫資源;以用戶e登陸,是不是可以對products、orders 兩張表都能進(jìn)行增、刪、查、改的操作等等。請學(xué)生務(wù)必用每個(gè)用戶的身份進(jìn)行登錄、比較操作以校驗(yàn)數(shù)據(jù)庫安全訪問控制實(shí)驗(yàn)過程的正確性。
本次實(shí)驗(yàn)主要是通過建立用戶、為用戶賦權(quán)限、建立角色、給用戶、角色授予權(quán)限等操作讓學(xué)生掌握數(shù)據(jù)庫的安全性管理、數(shù)據(jù)庫訪問控制的操作。在實(shí)驗(yàn)操作前,同學(xué)們一定要弄清楚SQL Server 的身份驗(yàn)證模式、數(shù)據(jù)訪問權(quán)限,然后再根據(jù)企業(yè)要求考慮設(shè)置哪些登錄賬號、數(shù)據(jù)庫用戶、角色、權(quán)限。數(shù)據(jù)庫安全性管理是多方面的,除SQL Server,還涉及到操作系統(tǒng)、網(wǎng)絡(luò)安全等等。作為數(shù)據(jù)庫管理人員,同學(xué)們應(yīng)對數(shù)據(jù)庫安全管理有全方面的了解,掌握更多的安全管理方法,維護(hù)數(shù)據(jù)庫安全。
[1]Microsoft.企業(yè)數(shù)據(jù)庫的安裝、配置和管理[M].北京:高等教育出版社,2005.
[2]羅耀軍.數(shù)據(jù)庫應(yīng)用技術(shù)項(xiàng)目教程[M].北京:電子工業(yè)出版社,2011.
[3]李素華.數(shù)據(jù)庫管理安全措施分析[J].黃河水利職業(yè)技術(shù)學(xué)院,2007,(04).
[4]胡登衛(wèi).SQL Server 數(shù)據(jù)庫安全策略研究[J].南陽師范學(xué)院學(xué)報(bào),2008,(09).
[5]李長春.基于小型企業(yè)網(wǎng)絡(luò)應(yīng)用實(shí)驗(yàn)綜述[J].滁州職業(yè)技術(shù)學(xué)院2014,(02).
滁州職業(yè)技術(shù)學(xué)院學(xué)報(bào)2015年1期