欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
構造SQL Server的安全門(mén)

一、驗證方法選擇

本文對驗證(authentication)和授權(authorization)這兩個(gè)概念作不同的解釋。驗證是指檢驗用戶(hù)的身份標識;授權是指允許用戶(hù)做些什么。在本文的討論中,驗證過(guò)程在用戶(hù)登錄SQL Server的時(shí)候出現,授權過(guò)程在用戶(hù)試圖訪(fǎng)問(wèn)數據或執行命令的時(shí)候出現。

構造安全策略的第一個(gè)步驟是確定SQL Server用哪種方式驗證用戶(hù)。SQL Server的驗證是把一組帳戶(hù)、密碼與Master數據庫Sysxlogins表中的一個(gè)清單進(jìn)行匹配。Windows NT/2000的驗證是請求域控制器檢查用戶(hù)身份的合法性。一般地,如果服務(wù)器可以訪(fǎng)問(wèn)域控制器,我們應該使用Windows NT/2000驗證。域控制器可以是Win2K服務(wù)器,也可以是NT服務(wù)器。無(wú)論在哪種情況下,SQL Server都接收到一個(gè)訪(fǎng)問(wèn)標記(Access Token)。訪(fǎng)問(wèn)標記是在驗證過(guò)程中構造出來(lái)的一個(gè)特殊列表,其中包含了用戶(hù)的SID(安全標識號)以及一系列用戶(hù)所在組的SID。正如本文后面所介紹的,SQL Server以這些SID為基礎授予訪(fǎng)問(wèn)權限。注意,操作系統如何構造訪(fǎng)問(wèn)標記并不重要,SQL Server只使用訪(fǎng)問(wèn)標記中的SID。也就是說(shuō),不論你使用SQL Server 2000、SQL Server 7.0、Win2K還是NT進(jìn)行驗證都無(wú)關(guān)緊要,結果都一樣。

如果使用SQL Server驗證的登錄,它最大的好處是很容易通過(guò)Enterprise Manager實(shí)現,最大的缺點(diǎn)在于SQL Server驗證的登錄只對特定的服務(wù)器有效,也就是說(shuō),在一個(gè)多服務(wù)器的環(huán)境中管理比較困難。使用SQL Server進(jìn)行驗證的第二個(gè)重要的缺點(diǎn)是,對于每一個(gè)數據庫,我們必須分別地為它管理權限。如果某個(gè)用戶(hù)對兩個(gè)數據庫有相同的權限要求,我們必須手工設置兩個(gè)數據庫的權限,或者編寫(xiě)腳本設置權限。如果用戶(hù)數量較少,比如25個(gè)以下,而且這些用戶(hù)的權限變化不是很頻繁,SQL Server驗證的登錄或許適用。但是,在幾乎所有的其他情況下(有一些例外情況,例如直接管理安全問(wèn)題的應用),這種登錄方式的管理負擔將超過(guò)它的優(yōu)點(diǎn)。

二、Web環(huán)境中的驗證

即使最好的安全策略也常常在一種情形前屈服,這種情形就是在Web應用中使用SQL Server的數據。在這種情形下,進(jìn)行驗證的典型方法是把一組SQL Server登錄名稱(chēng)和密碼嵌入到Web服務(wù)器上運行的程序,比如ASP頁(yè)面或者CGI腳本;然后,由Web服務(wù)器負責驗證用戶(hù),應用程序則使用它自己的登錄帳戶(hù)(或者是系統管理員sa帳戶(hù),或者為了方便起見(jiàn),使用Sysadmin服務(wù)器角色中的登錄帳戶(hù))為用戶(hù)訪(fǎng)問(wèn)數據。

這種安排有幾個(gè)缺點(diǎn),其中最重要的包括:它不具備對用戶(hù)在服務(wù)器上的活動(dòng)進(jìn)行審核的能力,完全依賴(lài)于Web應用程序實(shí)現用戶(hù)驗證,當SQL Server需要限定用戶(hù)權限時(shí)不同的用戶(hù)之間不易區別。如果你使用的是IIS 5.0或者IIS 4.0,你可以用四種方法驗證用戶(hù)。第一種方法是為每一個(gè)網(wǎng)站和每一個(gè)虛擬目錄創(chuàng )建一個(gè)匿名用戶(hù)的NT帳戶(hù)。此后,所有應用程序登錄SQL Server時(shí)都使用該安全環(huán)境。我們可以通過(guò)授予NT匿名帳戶(hù)合適的權限,改進(jìn)審核和驗證功能。

第二種方法是讓所有網(wǎng)站使用Basic驗證。此時(shí),只有當用戶(hù)在對話(huà)框中輸入了合法的帳戶(hù)和密碼,IIS才會(huì )允許他們訪(fǎng)問(wèn)頁(yè)面。IIS依靠一個(gè)NT安全數據庫實(shí)現登錄身份驗證,NT安全數據庫既可以在本地服務(wù)器上,也可以在域控制器上。當用戶(hù)運行一個(gè)訪(fǎng)問(wèn)SQL Server數據庫的程序或者腳本時(shí),IIS把用戶(hù)為了瀏覽頁(yè)面而提供的身份信息發(fā)送給服務(wù)器。如果你使用這種方法,應該記?。涸谕ǔG闆r下,瀏覽器與服務(wù)器之間的密碼傳送一般是不加密的,對于那些使用Basic驗證而安全又很重要的網(wǎng)站,你必須實(shí)現SSL(Secure Sockets Layer,安全套接字層)。

在客戶(hù)端只使用IE 5.0、IE 4.0、IE 3.0瀏覽器的情況下,你可以使用第三種驗證方法。你可以在Web網(wǎng)站上和虛擬目錄上都啟用NT驗證。IE會(huì )把用戶(hù)登錄計算機的身份信息發(fā)送給IIS,當該用戶(hù)試圖登錄SQL Server時(shí)IIS就使用這些登錄信息。使用這種簡(jiǎn)化的方法時(shí),我們可以在一個(gè)遠程網(wǎng)站的域上對用戶(hù)身份進(jìn)行驗證(該遠程網(wǎng)站登錄到一個(gè)與運行著(zhù)Web服務(wù)器的域有著(zhù)信任關(guān)系的域)。

最后,如果用戶(hù)都有個(gè)人數字證書(shū),你可以把那些證書(shū)映射到本地域的NT帳戶(hù)上。個(gè)人數字證書(shū)與服務(wù)器數字證書(shū)以同樣的技術(shù)為基礎,它證明用戶(hù)身份標識的合法性,所以可以取代NT的Challenge/Response(質(zhì)詢(xún)/回應)驗證算法。Netscape和IE都自動(dòng)在每一個(gè)頁(yè)面請求中把證書(shū)信息發(fā)送給IIS。IIS提供了一個(gè)讓管理員把證書(shū)映射到NT帳戶(hù)的工具。因此,我們可以用數字證書(shū)取代通常的提供帳戶(hù)名字和密碼的登錄過(guò)程。

由此可見(jiàn),通過(guò)NT帳戶(hù)驗證用戶(hù)時(shí)我們可以使用多種實(shí)現方法。即使當用戶(hù)通過(guò)IIS跨越Internet連接SQL Server時(shí),選擇仍舊存在。因此,你應該把NT驗證作為首選的用戶(hù)身份驗證辦法。

三、設置全局組

構造安全策略的下一個(gè)步驟是確定用戶(hù)應該屬于什么組。通常,每一個(gè)組織或應用程序的用戶(hù)都可以按照他們對數據的特定訪(fǎng)問(wèn)要求分成許多類(lèi)別。例如,會(huì )計應用軟件的用戶(hù)一般包括:數據輸入操作員,數據輸入管理員,報表編寫(xiě)員,會(huì )計師,審計員,財務(wù)經(jīng)理等。每一組用戶(hù)都有不同的數據庫訪(fǎng)問(wèn)要求。

控制數據訪(fǎng)問(wèn)權限最簡(jiǎn)單的方法是,對于每一組用戶(hù),分別地為它創(chuàng )建一個(gè)滿(mǎn)足該組用戶(hù)權限要求的、域內全局有效的組。我們既可以為每一個(gè)應用分別創(chuàng )建組,也可以創(chuàng )建適用于整個(gè)企業(yè)的、涵蓋廣泛用戶(hù)類(lèi)別的組。然而,如果你想要能夠精確地了解組成員可以做些什么,為每一個(gè)應用程序分別創(chuàng )建組是一種較好的選擇。例如,在前面的會(huì )計系統中,我們應該創(chuàng )建Data Entry Operators、Accounting Data Entry Managers等組。請記住,為了簡(jiǎn)化管理,最好為組取一個(gè)能夠明確表示出作用的名字。

除了面向特定應用程序的組之外,我們還需要幾個(gè)基本組?;窘M的成員負責管理服務(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ù)器上一個(gè)數據庫的名字)。當然,如果必要的話(huà),你還可以創(chuàng )建其他組。

創(chuàng )建了全局組之后,接下來(lái)我們可以授予它們訪(fǎng)問(wèn)SQL Server的權限。首先為SQL Server Users創(chuàng )建一個(gè)NT驗證的登錄并授予它登錄權限,把Master數據庫設置為它的默認數據庫,但不要授予它訪(fǎng)問(wèn)任何其他數據庫的權限,也不要把這個(gè)登錄帳戶(hù)設置為任何服務(wù)器角色的成員。接著(zhù)再為SQL Server Denied Users重復這個(gè)過(guò)程,但這次要拒絕登錄訪(fǎng)問(wèn)。在SQL Server中,拒絕權限始終優(yōu)先。創(chuàng )建了這兩個(gè)組之后,我們就有了一種允許或拒絕用戶(hù)訪(fǎng)問(wèn)服務(wù)器的便捷方法。

為那些沒(méi)有直接在Sysxlogins系統表里面登記的組授權時(shí),我們不能使用Enterpris Managr,因為Enterprise Manager只允許我們從現有登錄名字的列表選擇,而不是域內所有組的列表。要訪(fǎng)問(wèn)所有的組,請打開(kāi)Query Analyzer,然后用系統存儲過(guò)程sp_addsrvrolemember以及sp_addrolemember進(jìn)行授權。

對于操作服務(wù)器的各個(gè)組,我們可以用sp_addsrvrolemember存儲過(guò)程把各個(gè)登錄加入到合適的服務(wù)器角色:SQL Server Administrators成為Sysadmins角色的成員,SQL Server DB Creators成為Dbcreator角色的成員,SQL Server Security Operators成為Securityadmin角色的成員。注意sp_addsrvrolemember存儲過(guò)程的第一個(gè)參數要求是帳戶(hù)的完整路徑。例如,BigCo域的JoeS應該是bigco\joes(如果你想用本地帳戶(hù),則路徑應該是server_name\joes)。

要創(chuàng )建在所有新數據庫中都存在的用戶(hù),你可以修改Model數據庫。為了簡(jiǎn)化工作,SQL Server自動(dòng)把所有對Model數據庫的改動(dòng)復制到新的數據庫。只要正確運用Model數據庫,我們無(wú)需定制每一個(gè)新創(chuàng )建的數據庫。另外,我們可以用sp_addrolemember存儲過(guò)程把SQL Server Security Operators加入到db_securityadmin,把SQL Server Developers加入到db_owner角色。

注意我們仍然沒(méi)有授權任何組或帳戶(hù)訪(fǎng)問(wèn)數據庫。事實(shí)上,我們不能通過(guò)Enterprise Manager授權數據庫訪(fǎng)問(wèn),因為Enterprise Manager的用戶(hù)界面只允許我們把數據庫訪(fǎng)問(wèn)權限授予合法的登錄帳戶(hù)。SQL Server不要求NT帳戶(hù)在我們把它設置為數據庫角色的成員或分配對象權限之前能夠訪(fǎng)問(wèn)數據庫,但Enterprise Manager有這種限制。盡管如此,只要我們使用的是sp_addrolemember存儲過(guò)程而不是Enterprise Manager,就可以在不授予域內NT帳戶(hù)數據庫訪(fǎng)問(wèn)權限的情況下為任意NT帳戶(hù)分配權限。

到這里為止,對Model數據庫的設置已經(jīng)完成。但是,如果你的用戶(hù)群體對企業(yè)范圍內各個(gè)應用數據庫有著(zhù)類(lèi)似的訪(fǎng)問(wèn)要求,你可以把下面這些操作移到Model數據庫上進(jìn)行,而不是在面向特定應用的數據庫上進(jìn)行。

四、允許數據庫訪(fǎng)問(wèn)

在數據庫內部,與迄今為止我們對登錄驗證的處理方式不同,我們可以把權限分配給角色而不是直接把它們分配給全局組。這種能力使得我們能夠輕松地在安全策略中使用SQL Server驗證的登錄。即使你從來(lái)沒(méi)有想要使用SQL Server登錄帳戶(hù),本文仍舊建議分配權限給角色,因為這樣你能夠為未來(lái)可能出現的變化做好準備。

創(chuàng )建了數據庫之后,我們可以用sp_grantdbaccess存儲過(guò)程授權DB_Name Users組訪(fǎng)問(wèn)它。但應該注意的是,與sp_grantdbaccess對應的sp_denydbaccess存儲過(guò)程并不存在,也就是說(shuō),你不能按照拒絕對服務(wù)器訪(fǎng)問(wèn)的方法拒絕對數據庫的訪(fǎng)問(wèn)。如果要拒絕數據庫訪(fǎng)問(wèn),我們可以創(chuàng )建另外一個(gè)名為DB_Name Denied Users的全局組,授權它訪(fǎng)問(wèn)數據庫,然后把它設置為db_denydatareader以及db_denydatawriter角色的成員。注意SQL語(yǔ)句權限的分配,這里的角色只限制對對象的訪(fǎng)問(wèn),但不限制對DDL(Data Definition Language,數據定義語(yǔ)言)命令的訪(fǎng)問(wèn)。

正如對登錄過(guò)程的處理,如果訪(fǎng)問(wèn)標記中的任意SID已經(jīng)在Sysusers系統表登記,SQL將允許用戶(hù)訪(fǎng)問(wèn)數據庫。因此,我們既可以通過(guò)用戶(hù)的個(gè)人NT帳戶(hù)SID授權用戶(hù)訪(fǎng)問(wèn)數據庫,也可以通過(guò)用戶(hù)所在的一個(gè)(或者多個(gè))組的SID授權。為了簡(jiǎn)化管理,我們可以創(chuàng )建一個(gè)名為DB_Name Users的擁有數據庫訪(fǎng)問(wèn)權限的全局組,同時(shí)不把訪(fǎng)問(wèn)權授予所有其他的組。這樣,我們只需簡(jiǎn)單地在一個(gè)全局組中添加或者刪除成員就可以增加或者減少數據庫用戶(hù)。

五、分配權限

實(shí)施安全策略的最后一個(gè)步驟是創(chuàng )建用戶(hù)定義的數據庫角色,然后分配權限。完成這個(gè)步驟最簡(jiǎn)單的方法是創(chuàng )建一些名字與全局組名字配套的角色。例如對于前面例子中的會(huì )計系統,我們可以創(chuàng )建Accounting Data Entry Operators、Accounting Data Entry Managers之類(lèi)的角色。由于會(huì )計數據庫中的角色與帳務(wù)處理任務(wù)有關(guān),你可能想要縮短這些角色的名字。然而,如果角色名字與全局組的名字配套,你可以減少混亂,能夠更方便地判斷出哪些組屬于特定的角色。

創(chuàng )建好角色之后就可以分配權限。在這個(gè)過(guò)程中,我們只需用到標準的GRANT、REVOKE和DENY命令。但應該注意DENY權限,這個(gè)權限優(yōu)先于所有其他權限。如果用戶(hù)是任意具有DENY權限的角色或者組的成員,SQL Server將拒絕用戶(hù)訪(fǎng)問(wèn)對象。

接下來(lái)我們就可以加入所有SQL Server驗證的登錄。用戶(hù)定義的數據庫角色可以包含SQL Server登錄以及NT全局組、本地組、個(gè)人帳戶(hù),這是它最寶貴的特點(diǎn)之一。用戶(hù)定義的數據庫角色可以作為各種登錄的通用容器,我們使用用戶(hù)定義角色而不是直接把權限分配給全局組的主要原因就在于此。

由于內建的角色一般適用于整個(gè)數據庫而不是單獨的對象,因此這里建議你只使用兩個(gè)內建的數據庫角色,即db_securityadmin和db_owner。其他內建數據庫角色,例如db_datareader,它授予對數據庫里面所有對象的SELECT權限。雖然你可以用db_datareader角色授予SELECT權限,然后有選擇地對個(gè)別用戶(hù)或組拒絕SELECT權限,但使用這種方法時(shí),你可能忘記為某些用戶(hù)或者對象設置權限。一種更簡(jiǎn)單、更直接而且不容易出現錯誤的方法是為這些特殊的用戶(hù)創(chuàng )建一個(gè)用戶(hù)定義的角色,然后只把那些用戶(hù)訪(fǎng)問(wèn)對象所需要的權限授予這個(gè)用戶(hù)定義的角色。

六、簡(jiǎn)化安全管理

SQL Server驗證的登錄不僅能夠方便地實(shí)現,而且與NT驗證的登錄相比,它更容易編寫(xiě)到應用程序里。但是,如果用戶(hù)的數量超過(guò)25,或者服務(wù)器數量在一個(gè)以上,或者每個(gè)用戶(hù)都可以訪(fǎng)問(wèn)一個(gè)以上的數據庫,或者數據庫有多個(gè)管理員,SQL Server驗證的登錄不容易管理。由于SQL Server沒(méi)有顯示用戶(hù)有效權限的工具,要記憶每個(gè)用戶(hù)具有哪些權限以及他們?yōu)楹我玫竭@些權限就更加困難。即使對于一個(gè)數據庫管理員還要擔負其他責任的小型系統,簡(jiǎn)化安全策略也有助于減輕問(wèn)題的復雜程度。因此,首選的方法應該是使用NT驗證的登錄,然后通過(guò)一些精心選擇的全局組和數據庫角色管理數據庫訪(fǎng)問(wèn)。

下面是一些簡(jiǎn)化安全策略的經(jīng)驗規則:

◆用戶(hù)通過(guò)SQL Server Users組獲得服務(wù)器訪(fǎng)問(wèn),通過(guò)DB_Name Users組獲得數據庫訪(fǎng)問(wèn)。
◆用戶(hù)通過(guò)加入全局組獲得權限,而全局組通過(guò)加入角色獲得權限,角色直接擁有數據庫里的權限。
◆需要多種權限的用戶(hù)通過(guò)加入多個(gè)全局組的方式獲得權限。

只要規劃得恰當,你能夠在域控制器上完成所有的訪(fǎng)問(wèn)和權限維護工作,使得服務(wù)器反映出你在域控制器上進(jìn)行的各種設置調整。雖然實(shí)際應用中情況可能有所變化,但本文介紹的基本措施仍舊適用,它們能夠幫助你構造出很容易管理的安全策略。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
詳解SQLServer數據庫安全規劃全攻略
配置安全穩定的SQL Server數據庫
sql server 創(chuàng )建角色,用戶(hù),權限
SQL SERVE 的數據庫安全性研究
配置 Project Web App 的 OLAP 多維數據集
一文看懂SQLServer數據庫角色與權限管理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久