怎么配置一個安全穩(wěn)定的SQLSERVER的數(shù)據(jù)庫

本篇內(nèi)容介紹了“怎么配置一個安全穩(wěn)定的SQL SERVER的數(shù)據(jù)庫”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗,為客戶提供超值的營銷型網(wǎng)站建設(shè)服務(wù),我們始終認為:好的營銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個人等客戶提供了網(wǎng)站制作、做網(wǎng)站服務(wù),以良好的商業(yè)信譽,完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。

一、首先你要確認你的鑒別模式:
WIN NT鑒別模式呢還是混合模式,其中混合模式包括WIN NT鑒別模式和SQL SERVER 鑒別模式
實施鑒別模式的步驟
1、核實采用了可信連接
2、設(shè)置鑒別模式
3、關(guān)閉和重啟MSSQLServer服務(wù)程序
4、創(chuàng)建WIN NT分組和用戶
5、授權(quán)WIN NT分組和用戶可存取SQL Server
6、為用非可信任連接的用戶創(chuàng)建SQL Server登錄帳號

二、為用戶和角色分配登錄帳號
三、給角色分配登錄權(quán)
四、為用戶和角色分配許可權(quán)限

在改進SQL Server 7.0系列所實現(xiàn)的安全機制的過程中,Microsoft建立了一種既靈活又強大的安全管理
機制,它能夠?qū)τ脩粼L問SQL Server服務(wù)器系統(tǒng)和數(shù)據(jù)庫的安全進行全面地管理。按照本文介紹的步驟,你
可以為SQL Server 7.0(或2000)構(gòu)造出一個靈活的、可管理的安全策略,而且它的安全性經(jīng)得起考驗。

一、驗證方法選擇
本文對驗證(authentication)和授權(quán)(authorization)這兩個概念作不同的解釋。驗證是指檢驗用戶
的身份標識;授權(quán)是指允許用戶做些什么。在本文的討論中,驗證過程在用戶登錄SQL Server的時候出現(xiàn),
授權(quán)過程在用戶試圖訪問數(shù)據(jù)或執(zhí)行命令的時候出現(xiàn)。
構(gòu)造安全策略的第一個步驟是確定SQL Server用哪種方式驗證用戶。SQL Server的驗證是把一組帳戶、密
碼與Master數(shù)據(jù)庫Sysxlogins表中的一個清單進行匹配。Windows NT/2000的驗證是請求域控制器檢查用戶身
份的合法性。一般地,如果服務(wù)器可以訪問域控制器,我們應(yīng)該使用Windows NT/2000驗證。域控制器可以是
Win2K服務(wù)器,也可以是NT服務(wù)器。無論在哪種情況下,SQL Server都接收到一個訪問標記(Access Token)。
訪問標記是在驗證過程中構(gòu)造出來的一個特殊列表,其中包含了用戶的SID(安全標識號)以及一系列用戶所
在組的SID。正如本文后面所介紹的,SQL Server以這些SID為基礎(chǔ)授予訪問權(quán)限。注意,操作系統(tǒng)如何構(gòu)造訪
問標記并不重要,SQL Server只使用訪問標記中的SID。也就是說,不論你使用SQL Server 2000、SQL Server
7.0、Win2K還是NT進行驗證都無關(guān)緊要,結(jié)果都一樣。
如果使用SQL Server驗證的登錄,它最大的好處是很容易通過Enterprise Manager實現(xiàn),最大的缺點在于
SQL Server驗證的登錄只對特定的服務(wù)器有效,也就是說,在一個多服務(wù)器的環(huán)境中管理比較困難。使用SQL
Server進行驗證的第二個重要的缺點是,對于每一個數(shù)據(jù)庫,我們必須分別地為它管理權(quán)限。如果某個用戶
對兩個數(shù)據(jù)庫有相同的權(quán)限要求,我們必須手工設(shè)置兩個數(shù)據(jù)庫的權(quán)限,或者編寫腳本設(shè)置權(quán)限。如果用戶數(shù)
量較少,比如25個以下,而且這些用戶的權(quán)限變化不是很頻繁,SQL Server驗證的登錄或許適用。但是,在幾
乎所有的其他情況下(有一些例外情況,例如直接管理安全問題的應(yīng)用),這種登錄方式的管理負擔將超過它
的優(yōu)點。

二、Web環(huán)境中的驗證
即使最好的安全策略也常常在一種情形前屈服,這種情形就是在Web應(yīng)用中使用SQL Server的數(shù)據(jù)。在這
種情形下,進行驗證的典型方法是把一組SQL Server登錄名稱和密碼嵌入到Web服務(wù)器上運行的程序,比如
ASP頁面或者CGI腳本;然后,由Web服務(wù)器負責驗證用戶,應(yīng)用程序則使用它自己的登錄帳戶(或者是系統(tǒng)管
理員sa帳戶,或者為了方便起見,使用Sysadmin服務(wù)器角色中的登錄帳戶)為用戶訪問數(shù)據(jù)。
這種安排有幾個缺點,其中最重要的包括:它不具備對用戶在服務(wù)器上的活動進行審核的能力,完全依
賴于Web應(yīng)用程序?qū)崿F(xiàn)用戶驗證,當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)限,改進審核和驗證功能。
第二種方法是讓所有網(wǎng)站使用Basic驗證。此時,只有當用戶在對話框中輸入了合法的帳戶和密碼,IIS
才會允許他們訪問頁面。IIS依靠一個NT安全數(shù)據(jù)庫實現(xiàn)登錄身份驗證,NT安全數(shù)據(jù)庫既可以在本地服務(wù)器
上,也可以在域控制器上。當用戶運行一個訪問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會把用戶登錄計算機的身份信息發(fā)送給IIS,當該用戶試圖登錄SQL
Server時IIS就使用這些登錄信息。使用這種簡化的方法時,我們可以在一個遠程網(wǎng)站的域上對用戶身份進
行驗證(該遠程網(wǎng)站登錄到一個與運行著Web服務(wù)器的域有著信任關(guān)系的域)。
最后,如果用戶都有個人數(shù)字證書,你可以把那些證書映射到本地域的NT帳戶上。個人數(shù)字證書與服務(wù)
器數(shù)字證書以同樣的技術(shù)為基礎(chǔ),它證明用戶身份標識的合法性,所以可以取代NT的Challenge/Response
(質(zhì)詢/回應(yīng))驗證算法。Netscape和IE都自動在每一個頁面請求中把證書信息發(fā)送給IIS。IIS提供了一個
讓管理員把證書映射到NT帳戶的工具。因此,我們可以用數(shù)字證書取代通常的提供帳戶名字和密碼的登錄過
程。
由此可見,通過NT帳戶驗證用戶時我們可以使用多種實現(xiàn)方法。即使當用戶通過IIS跨越Internet連接
SQL Server時,選擇仍舊存在。因此,你應(yīng)該把NT驗證作為首選的用戶身份驗證辦法。

三、設(shè)置全局組
構(gòu)造安全策略的下一個步驟是確定用戶應(yīng)該屬于什么組。通常,每一個組織或應(yīng)用程序的用戶都可以按
照他們對數(shù)據(jù)的特定訪問要求分成許多類別。例如,會計應(yīng)用軟件的用戶一般包括:數(shù)據(jù)輸入操作員,數(shù)據(jù)
輸入管理員,報表編寫員,會計師,審計員,財務(wù)經(jīng)理等。每一組用戶都有不同的數(shù)據(jù)庫訪問要求。
控制數(shù)據(jù)訪問權(quán)限最簡單的方法是,對于每一組用戶,分別地為它創(chuàng)建一個滿足該組用戶權(quán)限要求的、
域內(nèi)全局有效的組。我們既可以為每一個應(yīng)用分別創(chuàng)建組,也可以創(chuàng)建適用于整個企業(yè)的、涵蓋廣泛用戶類
別的組。然而,如果你想要能夠精確地了解組成員可以做些什么,為每一個應(yīng)用程序分別創(chuàng)建組是一種較好
的選擇。例如,在前面的會計系統(tǒng)中,我們應(yīng)該創(chuàng)建Data Entry Operators、Accounting Data Entry
Managers等組。請記住,為了簡化管理,最好為組取一個能夠明確表示出作用的名字。
除了面向特定應(yīng)用程序的組之外,我們還需要幾個基本組。基本組的成員負責管理服務(wù)器。按照習慣,
我們可以創(chuàng)建下面這些基本組:SQL Server Administrators,SQL Server Users,SQL Server Denied
Users,SQL Server DB Creators,SQL Server Security Operators,SQL Server Database Security
Operators,SQL Server Developers,以及 DB_Name Users(其中DB_Name是服務(wù)器上一個數(shù)據(jù)庫的名
字)。當然,如果必要的話,你還可以創(chuàng)建其他組。
創(chuàng)建了全局組之后,接下來我們可以授予它們訪問SQL Server的權(quán)限。首先為SQL Server Users創(chuàng)建一
個NT驗證的登錄并授予它登錄權(quán)限,把Master數(shù)據(jù)庫設(shè)置為它的默認數(shù)據(jù)庫,但不要授予它訪問任何其他數(shù)
據(jù)庫的權(quán)限,也不要把這個登錄帳戶設(shè)置為任何服務(wù)器角色的成員。接著再為SQL Server Denied Users重復
這個過程,但這次要拒絕登錄訪問。在SQL Server中,拒絕權(quán)限始終優(yōu)先。創(chuàng)建了這兩個組之后,我們就有
了一種允許或拒絕用戶訪問服務(wù)器的便捷方法。
為那些沒有直接在Sysxlogins系統(tǒng)表里面登記的組授權(quán)時,我們不能使用Enterpris Managr,因為Enter-
prise Manager只允許我們從現(xiàn)有登錄名字的列表選擇,而不是域內(nèi)所有組的列表。要訪問所有的組,請打開
Query Analyzer,然后用系統(tǒng)存儲過程sp_addsrvrolemember以及sp_addrolemember進行授權(quán)。
對于操作服務(wù)器的各個組,我們可以用sp_addsrvrolemember存儲過程把各個登錄加入到合適的服務(wù)器
角色:SQL Server Administrators成為Sysadmins角色的成員,SQL Server DB Creators成為Dbcreator角
色的成員,SQL Server Security Operators成為Securityadmin角色的成員。注意sp_addsrvrolemember存
儲過程的第一個參數(shù)要求是帳戶的完整路徑。例如,BigCo域的JoeS應(yīng)該是bigco/joes(如果你想用本地帳
戶,則路徑應(yīng)該是server_name/joes)。
要創(chuàng)建在所有新數(shù)據(jù)庫中都存在的用戶,你可以修改Model數(shù)據(jù)庫。為了簡化工作,SQL Server自動把
所有對Model數(shù)據(jù)庫的改動復制到新的數(shù)據(jù)庫。只要正確運用Model數(shù)據(jù)庫,我們無需定制每一個新創(chuàng)建的數(shù)
據(jù)庫。另外,我們可以用sp_addrolemember存儲過程把SQL Server Security Operators加入到db_security-
admin,把SQL Server Developers加入到db_owner角色。
注意我們?nèi)匀粵]有授權(quán)任何組或帳戶訪問數(shù)據(jù)庫。事實上,我們不能通過Enterprise Manager授權(quán)數(shù)
據(jù)庫訪問,因為Enterprise Manager的用戶界面只允許我們把數(shù)據(jù)庫訪問權(quán)限授予合法的登錄帳戶。SQL
Server不要求NT帳戶在我們把它設(shè)置為數(shù)據(jù)庫角色的成員或分配對象權(quán)限之前能夠訪問數(shù)據(jù)庫,但Enter-
prise Manager有這種限制。盡管如此,只要我們使用的是sp_addrolemember存儲過程而不是Enterprise
Manager,就可以在不授予域內(nèi)NT帳戶數(shù)據(jù)庫訪問權(quán)限的情況下為任意NT帳戶分配權(quán)限。
到這里為止,對Model數(shù)據(jù)庫的設(shè)置已經(jīng)完成。但是,如果你的用戶群體對企業(yè)范圍內(nèi)各個應(yīng)用數(shù)據(jù)庫
有著類似的訪問要求,你可以把下面這些操作移到Model數(shù)據(jù)庫上進行,而不是在面向特定應(yīng)用的數(shù)據(jù)庫上
進行。

四、允許數(shù)據(jù)庫訪問
在數(shù)據(jù)庫內(nèi)部,與迄今為止我們對登錄驗證的處理方式不同,我們可以把權(quán)限分配給角色而不是直接把
它們分配給全局組。這種能力使得我們能夠輕松地在安全策略中使用SQL Server驗證的登錄。即使你從來沒
有想要使用SQL Server登錄帳戶,本文仍舊建議分配權(quán)限給角色,因為這樣你能夠為未來可能出現(xiàn)的變化做
好準備。
創(chuàng)建了數(shù)據(jù)庫之后,我們可以用sp_grantdbaccess存儲過程授權(quán)DB_Name Users組訪問它。但應(yīng)該注意的
是,與sp_grantdbaccess對應(yīng)的sp_denydbaccess存儲過程并不存在,也就是說,你不能按照拒絕對服務(wù)器訪
問的方法拒絕對數(shù)據(jù)庫的訪問。如果要拒絕數(shù)據(jù)庫訪問,我們可以創(chuàng)建另外一個名為DB_Name Denied Users
的全局組,授權(quán)它訪問數(shù)據(jù)庫,然后把它設(shè)置為db_denydatareader以及db_denydatawriter角色的成員。注
意SQL語句權(quán)限的分配,這里的角色只限制對對象的訪問,但不限制對DDL(Data Definition Language,數(shù)
據(jù)定義語言)命令的訪問。
正如對登錄過程的處理,如果訪問標記中的任意SID已經(jīng)在Sysusers系統(tǒng)表登記,SQL將允許用戶訪問數(shù)
據(jù)庫。因此,我們既可以通過用戶的個人NT帳戶SID授權(quán)用戶訪問數(shù)據(jù)庫,也可以通過用戶所在的一個(或
者多個)組的SID授權(quán)。為了簡化管理,我們可以創(chuàng)建一個名為DB_Name Users的擁有數(shù)據(jù)庫訪問權(quán)限的全局
組,同時不把訪問權(quán)授予所有其他的組。這樣,我們只需簡單地在一個全局組中添加或者刪除成員就可以增
加或者減少數(shù)據(jù)庫用戶。

五、分配權(quán)限
實施安全策略的最后一個步驟是創(chuàng)建用戶定義的數(shù)據(jù)庫角色,然后分配權(quán)限。完成這個步驟最簡單的方
法是創(chuàng)建一些名字與全局組名字配套的角色。例如對于前面例子中的會計系統(tǒng),我們可以創(chuàng)建Accounting
Data Entry Operators、Accounting Data Entry Managers之類的角色。由于會計數(shù)據(jù)庫中的角色與帳務(wù)處
理任務(wù)有關(guān),你可能想要縮短這些角色的名字。然而,如果角色名字與全局組的名字配套,你可以減少混亂,
能夠更方便地判斷出哪些組屬于特定的角色。
創(chuàng)建好角色之后就可以分配權(quán)限。在這個過程中,我們只需用到標準的GRANT、REVOKE和DENY命令。但
應(yīng)該注意DENY權(quán)限,這個權(quán)限優(yōu)先于所有其他權(quán)限。如果用戶是任意具有DENY權(quán)限的角色或者組的成員,
SQL Server將拒絕用戶訪問對象。
接下來我們就可以加入所有SQL Server驗證的登錄。用戶定義的數(shù)據(jù)庫角色可以包含SQL Server登錄以
及NT全局組、本地組、個人帳戶,這是它最寶貴的特點之一。用戶定義的數(shù)據(jù)庫角色可以作為各種登錄的通
用容器,我們使用用戶定義角色而不是直接把權(quán)限分配給全局組的主要原因就在于此。
由于內(nèi)建的角色一般適用于整個數(shù)據(jù)庫而不是單獨的對象,因此這里建議你只使用兩個內(nèi)建的數(shù)據(jù)庫角
色,即db_securityadmin和db_owner。其他內(nèi)建數(shù)據(jù)庫角色,例如db_datareader,它授予對數(shù)據(jù)庫里面所
有對象的SELECT權(quán)限。雖然你可以用db_datareader角色授予SELECT權(quán)限,然后有選擇地對個別用戶或組拒
絕SELECT權(quán)限,但使用這種方法時,你可能忘記為某些用戶或者對象設(shè)置權(quán)限。一種更簡單、更直接而且不
容易出現(xiàn)錯誤的方法是為這些特殊的用戶創(chuàng)建一個用戶定義的角色,然后只把那些用戶訪問對象所需要的權(quán)
限授予這個用戶定義的角色。

“怎么配置一個安全穩(wěn)定的SQL SERVER的數(shù)據(jù)庫”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)頁名稱:怎么配置一個安全穩(wěn)定的SQLSERVER的數(shù)據(jù)庫
鏈接URL:http://muchs.cn/article30/jepdso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、動態(tài)網(wǎng)站、標簽優(yōu)化品牌網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作