|
Microsoft建立了一種既靈活又強(qiáng)大的安全管理機(jī)制,它能夠?qū)τ脩粼L問SQL Server服務(wù)器系統(tǒng)和數(shù)據(jù)庫的安全進(jìn)行全面地管理。按照本文介紹的步驟,你可以為SQL Server 7.0(或2000)構(gòu)造出一個靈活的、可管理的安全策略,而且它的安全性經(jīng)得起考驗。
一、驗證方法選擇
本文對驗證(authentication)和授權(quán)(authorization)這兩個概念作不同的解釋。驗證是指檢驗用戶的身份標(biāo)識;授權(quán)是指允許用戶做些什么。在本文的討論中,驗證過程在用戶登錄SQL Server的時候出現(xiàn),授權(quán)過程在用戶試圖訪問數(shù)據(jù)或執(zhí)行命令的時候出現(xiàn)。
構(gòu)造安全策略的第一個步驟是確定SQL Server用哪種方式驗證用戶。SQL Server的驗證是把一組帳戶、密碼與Master數(shù)據(jù)庫Sysxlogins表中的一個清單進(jìn)行匹配。Windows NT/2000的驗證是請求域控制器檢查用戶身份的合法性。一般地,如果服務(wù)器可以訪問域控制器,我們應(yīng)該使用Windows NT/2000驗證。域控制器可以是Win2K服務(wù)器,也可以是NT服務(wù)器。無論在哪種情況下,SQL Server都接收到一個訪問標(biāo)記(Access Token)。訪問標(biāo)記是在驗證過程中構(gòu)造出來的一個特殊列表,其中包含了用戶的SID(安全標(biāo)識號)以及一系列用戶所在組的SID。正如本文后面所介紹的,SQL Server以這些SID為基礎(chǔ)授予訪問權(quán)限。注意,操作系統(tǒng)如何構(gòu)造訪問標(biāo)記并不重要,SQL Server只使用訪問標(biāo)記中的SID。也就是說,不論你使用SQL Server 2000、SQL Server 7.0、Win2K還是NT進(jìn)行驗證都無關(guān)緊要,結(jié)果都一樣。
如果使用SQL Server驗證的登錄,它最大的好處是很容易通過Enterprise Manager實現(xiàn),最大的缺點在于SQL Server驗證的登錄只對特定的服務(wù)器有效,也就是說,在一個多服務(wù)器的環(huán)境中管理比較困難。使用SQL Server進(jìn)行驗證的第二個重要的缺點是,對于每一個數(shù)據(jù)庫,我們必須分別地為它管理權(quán)限。如果某個用戶對兩個數(shù)據(jù)庫有相同的權(quán)限要求,我們必須手工設(shè)置兩個數(shù)據(jù)庫的權(quán)限,或者編寫腳本設(shè)置權(quán)限。如果用戶數(shù)量較少,比如25個以下,而且這些用戶的權(quán)限變化不是很頻繁,SQL Server驗證的登錄或許適用。但是,在幾乎所有的其他情況下(有一些例外情況,例如直接管理安全問題的應(yīng)用),這種登錄方式的管理負(fù)擔(dān)將超過它的優(yōu)點。
二、Web環(huán)境中的驗證
即使最好的安全策略也常常在一種情形前屈服,這種情形就是在Web應(yīng)用中使用SQL Server的數(shù)據(jù)。在這種情形下,進(jìn)行驗證的典型方法是把一組SQL Server登錄名稱和密碼嵌入到Web服務(wù)器上運(yùn)行的程序,比如ASP頁面或者CGI腳本;然后,由Web服務(wù)器負(fù)責(zé)驗證用戶,應(yīng)用程序則使用它自己的登錄帳戶(或者是系統(tǒng)管理員sa帳戶,或者為了方便起見,使用Sysadmin服務(wù)器角色中的登錄帳戶)為用戶訪問數(shù)據(jù)。
這種安排有幾個缺點,其中最重要的包括:它不具備對用戶在服務(wù)器上的活動進(jìn)行審核的能力,完全依賴于Web應(yīng)用程序?qū)崿F(xiàn)用戶驗證,當(dāng)SQL Server需要限定用戶權(quán)限時不同的用戶之間不易區(qū)別。如果你使用的是IIS 5.0或者IIS 4.0,你可以用四種方法驗證用戶。第一種方法是為每一個網(wǎng)站和每一個虛擬目錄創(chuàng)建一個匿名用戶的NT帳戶。此后,所有應(yīng)用程序登錄SQL Server時都使用該安全環(huán)境。我們可以通過授予NT匿名帳戶合適的權(quán)限,改進(jìn)審核和驗證功能。
第二種方法是讓所有網(wǎng)站使用Basic驗證。此時,只有當(dāng)用戶在對話框中輸入了合法的帳戶和密碼,IIS才會允許他們訪問頁面。IIS依靠一個NT安全數(shù)據(jù)庫實現(xiàn)登錄身份驗證,NT安全數(shù)據(jù)庫既可以在本地服務(wù)器上,也可以在域控制器上。當(dāng)用戶運(yùn)行一個訪問SQL Server數(shù)據(jù)庫的程序或者腳本時,IIS把用戶為了瀏覽頁面而提供的身份信息發(fā)送給服務(wù)器。如果你使用這種方法,應(yīng)該記。涸谕ǔG闆r下,瀏覽器與服務(wù)器之間的密碼傳送一般是不加密的,對于那些使用Basic驗證而安全又很重要的網(wǎng)站,你必須實現(xiàn)SSL(Secure Sockets Layer,安全套接字層)。
在客戶端只使用IE 5.0、IE 4.0、IE 3.0瀏覽器的情況下,你可以使用第三種驗證方法。你可以在Web網(wǎng)站上和虛擬目錄上都啟用NT驗證。IE會把用戶登錄計算機(jī)的身份信息發(fā)送給IIS,當(dāng)該用戶試圖登錄SQL Server時IIS就使用這些登錄信息。使用這種簡化的方法時,我們可以在一個遠(yuǎn)程網(wǎng)站的域上對用戶身份進(jìn)行驗證(該遠(yuǎn)程網(wǎng)站登錄到一個與運(yùn)行著Web服務(wù)器的域有著信任關(guān)系的域)。 本新聞共 4頁,當(dāng)前在第 1頁 1 2 3 4 |
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|