對(duì)于數(shù)據(jù)庫(kù)管理來說,保護(hù)數(shù)據(jù)不受內(nèi)部和外部侵害是一項(xiàng)重要的工作。Microsoft SQL Server 正日益廣泛的使用于各部門內(nèi)外,作為SQL Server(SQL Server是指Microsoft SQL Server,下文同)的數(shù)據(jù)庫(kù)系統(tǒng)管理員,需要深入的理解SQL Server的安全性控制策略,以實(shí)現(xiàn)管理安全性的目標(biāo)。
各層SQL Server安全控制策略是通過各層安全控制系統(tǒng)的身份驗(yàn)證實(shí)現(xiàn)的。身份驗(yàn)證是指當(dāng)用戶訪問系統(tǒng)時(shí),系統(tǒng)對(duì)該用戶的賬號(hào)和口令的確認(rèn)過程。身份驗(yàn)證的內(nèi)容包括確認(rèn)用戶的賬號(hào)是否有效、能否訪問系統(tǒng)、能訪問系統(tǒng)的哪些數(shù)據(jù)等。
身份驗(yàn)證方式是指系統(tǒng)確認(rèn)用戶的方式。SQL Server系統(tǒng)是基于Windows NT/2000操作系統(tǒng)的,現(xiàn)在的SQL Server系統(tǒng)可以安裝在Windows 95(需要安裝Winsock升級(jí)軟件)、Windows 98和Windows ME之上(此時(shí),將沒有第一層和第二層的安全性控制),但舊的SQL Servers系統(tǒng)只能運(yùn)行在Windows NT/2000操作系統(tǒng)上。Windows NT/2000對(duì)用戶有自己的身份驗(yàn)證方式,用戶必須提供自己的用戶名和相應(yīng)的口令才能訪問Windows NT/2000系統(tǒng)。
這樣SQL Server的安全系統(tǒng)可在任何服務(wù)器上通過兩種方式實(shí)現(xiàn):SQL Server和Windows結(jié)合使用(SQL Server and Windows)以及只使用Windows(Windows Only)。訪問Windows NT/2000系統(tǒng)用戶能否訪問SQL Server系統(tǒng)就取決于SQL Server系統(tǒng)身份驗(yàn)證方式的設(shè)置。
1. 用戶標(biāo)識(shí)與驗(yàn)證
用戶標(biāo)示和驗(yàn)證是系統(tǒng)提供的最外層安全保護(hù)措施。其方法是由系統(tǒng)提供一定的方式讓用戶標(biāo)示自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過鑒定后才提供機(jī)器使用權(quán)。
對(duì)于獲得上機(jī)權(quán)的用戶若要使用數(shù)據(jù)庫(kù)時(shí)數(shù)據(jù)庫(kù)管理系統(tǒng)還要進(jìn)行用戶標(biāo)識(shí)和鑒定。
用戶標(biāo)識(shí)和鑒定的方法有很多種,而且在一個(gè)系統(tǒng)中往往是多種方法并舉,以獲得更強(qiáng)的安全性。常用的方法有:
用一個(gè)用戶名或者用戶標(biāo)識(shí)號(hào)來標(biāo)明用戶身份。系統(tǒng)內(nèi)部紀(jì)錄著所有合法用戶的標(biāo)識(shí),系統(tǒng)驗(yàn)證此戶是否合法用戶,若是,則可以進(jìn)入下一步的核實(shí);若不是,則不能使用系統(tǒng)。
為了進(jìn)一步核實(shí)用戶,系統(tǒng)常常要求用戶輸入口令(Password)。為保密起見,用戶在終端上輸入的口令不顯示在屏幕上。系統(tǒng)核對(duì)口令以驗(yàn)證用戶身份。
用戶標(biāo)識(shí)與驗(yàn)證在SQL Server中對(duì)應(yīng)的是Windows NT/2000登錄賬號(hào)和口令以及SQL Server用戶登錄賬號(hào)和口令。
2. SQL Server身份驗(yàn)證方式
用戶必須使用一個(gè)登錄賬號(hào),才能連接到SQL Server中。SQL Server可以識(shí)別兩類的身份驗(yàn)證方式,即:SQL Server身份驗(yàn)證(SQL Server Authentication)方式和Windows身份驗(yàn)證(Windows Authentication)方式。這兩種方式的結(jié)構(gòu)如圖2所示。這兩種方式都有自己的登錄賬號(hào)類型。
注意的是,如果在Microsoft Windows95/98/ME上使用SQL Server的Personal版,作為SQL Server宿主的Microsoft Windows95/98/ME系統(tǒng)只能使用SQL Server登錄。因此,Windows NT/2000身份驗(yàn)證、域用戶的賬號(hào)和域組賬號(hào)都是不可用的。
當(dāng)使用SQL Server身份驗(yàn)證方式時(shí), 由SQL Server系統(tǒng)管理員定義SQL Server賬號(hào)和口令。當(dāng)用戶連接SQL Serve時(shí),必須提供登錄賬號(hào)和口令。當(dāng)使用Windows身份驗(yàn)證方式時(shí),由Windows NT/2000賬號(hào)或者組控制用戶對(duì)SQL Server系統(tǒng)的訪問。這時(shí),用戶不必提供SQL Server的Login賬號(hào)和口令就能連接到系統(tǒng)上。但是,在該用戶連接之前,SQL Serve系統(tǒng)管理員必須將Windows NT/2000賬號(hào)或者Windows NT/2000組定義為SQL Server的有效登錄賬號(hào)。來
3. 身份驗(yàn)證模式
當(dāng)SQL Serve在Windows NT/2000上運(yùn)行時(shí),系統(tǒng)管理員必須指定系統(tǒng)的身份驗(yàn)證模式類型。SQL Server的身份驗(yàn)證模式有兩種:Windows 身份驗(yàn)證(Windows Authentication)模式和混合模式(Mixed Mode)。身份驗(yàn)證模式和身份驗(yàn)證方式的關(guān)系是:
Windows身份驗(yàn)證模式 (Windows身份驗(yàn)證方式)
混合模式 (Windows 身份驗(yàn)證方式 和 SQL Server 身份驗(yàn)證方式)
Windows 身份驗(yàn)證模式只允許使用Windows 身份驗(yàn)證方式,這時(shí)用戶無(wú)法以SQL Server的登錄賬號(hào)登錄服務(wù)器。它要求用戶登錄到Windows NT/2000,當(dāng)用戶訪問SQL Server時(shí),不用再次登錄。雖然用戶仍會(huì)被提示登錄,但SQL Server的用戶名會(huì)自動(dòng)從用戶網(wǎng)絡(luò)登錄ID中提取。而混合身份驗(yàn)證模式即允許使用Windows NT/2000身份驗(yàn)證方式,又允許使用SQL Server身份驗(yàn)證方式。它使用戶既可以登錄SQL Server,也可用Windows NT/2000的集成登錄。
集成登錄只能在用命名管道連接客戶機(jī)服務(wù)器時(shí)使用。當(dāng)使用混合模式時(shí),無(wú)論是使用Windows NT/2000身份驗(yàn)證方式的用戶,還是使用SQL Server身份驗(yàn)證方式的用戶,都可以連接到SQL Server系統(tǒng)上。也就是說:身份驗(yàn)證模式是對(duì)服務(wù)器來說的,而身份驗(yàn)證方式是對(duì)客戶端來說的。
4. Windows身份驗(yàn)證模式
Windows 身份驗(yàn)證模式最適用于只在部門訪問數(shù)據(jù)庫(kù)的情況。與SQL Server身份驗(yàn)證方式相比,Windows身份驗(yàn)證方式具有下列優(yōu)點(diǎn):提供了更多的功能,例如安全確認(rèn)和口令加密、審核、口令失效、最小口令長(zhǎng)度和賬號(hào)鎖定;通過增加單個(gè)登錄賬號(hào),允許在SQL Server系統(tǒng)中增加用戶組;允許用戶迅速訪問SQL Server系統(tǒng),而不必使用另一個(gè)登錄賬號(hào)和口令。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |