国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ASP.NET2.0數(shù)據(jù)庫之SQL Server安全性

2019-11-18 17:06:39
字體:
供稿:網(wǎng)友

  SQL Server的安裝有兩個(gè)關(guān)于安全模式的選項(xiàng)。它們之間的差別在于由哪一個(gè)軟件執(zhí)行認(rèn)證過程。認(rèn)證是一個(gè)確認(rèn)將要連接SQL Server的用戶身份的過程。一旦執(zhí)行了認(rèn)證,SQL Server就能驗(yàn)證這個(gè)用戶是否具有許可來連接一個(gè)被請(qǐng)求的資源,例如一個(gè)數(shù)據(jù)庫。如果用戶具有連接數(shù)據(jù)庫的許可,那么SQL Server將允許連接請(qǐng)求成功,否則,連接失敗。這個(gè)驗(yàn)證用戶許可的過程還被稱為授權(quán)。

  · Windows Authentication(還被稱為Trusted Authentication或者Integrated Security)使用進(jìn)行連接請(qǐng)求過程的Windows用戶身份來執(zhí)行對(duì)數(shù)據(jù)庫的授權(quán)。在這種情況下,連接字符串不必提供顯式的用戶名和密碼。asp.net以一個(gè)名為"ASPNET"的本地用戶來運(yùn)行(或者在IIS 6.0當(dāng)中使用用戶名"Network Service"),所以當(dāng)使用Windows Authentication時(shí),SQL將會(huì)檢查這個(gè)用戶是否擁有使用數(shù)據(jù)庫的許可。此時(shí),所有的ASP.NET應(yīng)用程序都用這個(gè)相同的用戶運(yùn)行,所以該安全模式對(duì)這些應(yīng)用程序一視同仁。雖然可以在單獨(dú)的ASP.NET進(jìn)程中運(yùn)行每一個(gè)應(yīng)用程序(單獨(dú)的用戶運(yùn)行每個(gè)程序),或者可以模擬進(jìn)行連接請(qǐng)求的瀏覽器客戶的Windows用戶身份,但是這些內(nèi)容都超出了本書所要講述的范圍。不過,客戶模擬的情況在Web應(yīng)用程序中是Windows Authentication最常見的使用方式。

  · SQL Authentication針對(duì)在SQL Server內(nèi)配置的用戶來檢查顯式提供的用戶名和密碼(無需涉及操作系統(tǒng))。在這種情況下,在ASP.NET進(jìn)程中運(yùn)行的每個(gè)應(yīng)用程序都能以單獨(dú)的證書來連接數(shù)據(jù)庫,這樣就把應(yīng)用程序合理地隔離開了(應(yīng)用程序A如果沒有B的用戶名和密碼就不能連接至B的數(shù)據(jù)庫)。這是用于部署的Web應(yīng)用程序的最常見認(rèn)證模式,特別是在共享宿主的情況下。它的一個(gè)小缺點(diǎn)就是需要應(yīng)用程序保留用于連接的用戶賬戶的密碼,并且如果該密碼被惡意用戶獲取,那么將危及數(shù)據(jù)庫的安全。但是,在本書后面將會(huì)看到,ASP.NET提供了一個(gè)安全的方式,將SQL Authentication密碼以加密的格式保存在Web.config文件中,這樣就降低了密碼被獲取的風(fēng)險(xiǎn)。

  · Mixed Mode是SQL Server的配置,它既允許Windows Authentication,也允許SQL Authentication。

  在安裝SQL Server或者SSE時(shí),要選擇一種認(rèn)證模式。在SQL Server中,有向?qū)?huì)在安全步驟中幫助選擇,而在SSE中,默認(rèn)選擇是Windows Authenti cation。如果要安裝SQL Authentication,就必須顯式地配置。本文使用的是Windows Authentication。

  如果已經(jīng)安裝了SQL Server或者SSE,就能通過打開RegEdit來查看所指定的認(rèn)證模式(當(dāng)然需要先備份),找到HKey_Local_Machine/Software/Microsoft/Microsoft SQL Server并搜索LoginMode。值為1的注冊(cè)子鍵表示W(wǎng)indows Auth entication,而值2表示Mixed Authentication模式。

  表3-1總結(jié)了這些模式之間的區(qū)別。

  表3-1

Windwos AuthenticationSQL Authentication
可替換名稱Trusted Authentication
Integrated Security
沒有,但是Mixed Mode Authen tication允許使用Windows或者SQL Authentication
典型環(huán)境 內(nèi)部網(wǎng)因特網(wǎng)
用戶和認(rèn)證過程列表的位置 WindowsSQL Server
SSE安裝默認(rèn)安裝需要指定安裝
連接字符串Trusted_connection=true或者Integrated Security=trueuser=username;
passWord=password
ASP.NET Web應(yīng)用程序的用戶ASP.NET進(jìn)程、ASPNET(IIS 5.x)或者Network Service(IIS 6) SQL用戶
優(yōu)勢(shì) 較好的安全性;可以對(duì)用戶在SQL事件和Windows事件中的活動(dòng)進(jìn)行跟蹤 無需創(chuàng)建新賬戶即可在宿主機(jī)上部署;獨(dú)立于操作系統(tǒng)

宿主的內(nèi)部網(wǎng)站點(diǎn)只需一般技術(shù)

為應(yīng)用程序提供更加靈活的方式以不同的證書來連接每個(gè)數(shù)據(jù)庫
劣勢(shì) 給予Web應(yīng)用程序Windows證書有可能會(huì)將OS中的權(quán)限范圍設(shè)置過大 密碼存儲(chǔ)在Web應(yīng)用程序中(在Windows認(rèn)證中則不是)。確認(rèn)密碼保存在Web.config文件中并已加密。

允許使用sa證書的Web應(yīng)用程序的低級(jí)操作。總是為ASP.NET Web應(yīng)用程序創(chuàng)建新的證書并只給予所需的權(quán)限

  現(xiàn)在,知道了SQL使用安全的方式,我們來考慮數(shù)據(jù)使用者(DataSource控件)將如何滿足需求。首先,使用從VWD和VWD Web Server(Cassini)獲取的數(shù)據(jù),主要是在設(shè)計(jì)和測(cè)試的時(shí)候。第二,在部署之后應(yīng)當(dāng)從IIS訪問數(shù)據(jù)。這兩個(gè)數(shù)據(jù)使用者有不同的用戶名。VWD和VWD Web Server使用登錄進(jìn)Windows的人員的名稱,而IIS程序使用名稱ASPNET。

  如果SQL Server使用Windows認(rèn)證,那么SqlDataSource控件需要在連接字符串中包含如下代碼:Integrated Security=true(或者Trusted_connection=true)。這個(gè)參數(shù)將指示SQL Server根據(jù)請(qǐng)求者的Windows登錄賬戶對(duì)數(shù)據(jù)請(qǐng)求進(jìn)行認(rèn)證。如果是登錄安裝SSE的用戶,其證書將授予訪問SSE的權(quán)限。使用VWD和VWD Web Server將一切順利,因?yàn)閂W Web Server的用戶被認(rèn)為是登錄進(jìn)Windows的程序人員,于是具有SSE上的賬戶。但是,即使是應(yīng)用程序在VWD之外工作正常,當(dāng)站點(diǎn)遷移至IIS后,也會(huì)不正常。IIS是在名為ASPNET的用戶賬戶下運(yùn)行的(或者是在IIS6/Windows 2003 Server中的Network Service)。因此,運(yùn)行著IIS的機(jī)器的管理員必須添加ASP.NET用戶并授予其許可。這個(gè)過程超出了本書講解的范圍,但是在很多IIS管理員手冊(cè)中都有詳細(xì)的描述。總而言之,如果SQL Server使用的是Windows認(rèn)證,就能使用VWD和VWD Web Server進(jìn)行本書的練習(xí)。只有在授予了訪問數(shù)據(jù)庫的ASP.NET進(jìn)程賬戶許可之后,您的頁面才可以在IIS上運(yùn)行。

  如果SQL Server使用的是SQL認(rèn)證,SQL將進(jìn)行自己的認(rèn)證過程。這個(gè)過程將不依靠Windows的用戶列表。連接字符串中包含了兩個(gè)參數(shù):user=username, password=password。現(xiàn)在就可以從VWD、VWD Web Server或者IIS中使用頁面了,因?yàn)椴恍枰赪indows中創(chuàng)建用戶賬戶。但是,我們還要使用SQL Server中的賬戶。惟一的默認(rèn)賬戶是sa。在部署之前,應(yīng)當(dāng)在SQL Server中創(chuàng)建另外一個(gè)賬戶,該賬戶只擁有執(zhí)行ASPX頁面的權(quán)限。如果不創(chuàng)建sa以外的替換賬戶(和密碼以保護(hù)sa),那么將會(huì)使站點(diǎn)處于最知名、最易于利用的安全漏洞之中。任何黑客都知道使用空密碼的userID='sa'來登錄。

  對(duì)兩種認(rèn)證模式來說,當(dāng)使用前面所述的連接字符串時(shí),用戶將以初始賬戶登錄進(jìn)SQL Server。這個(gè)賬戶就是sa,表示系統(tǒng)管理員,從名稱上可以看出,它具有對(duì)所有對(duì)象的所有權(quán)限。在當(dāng)前的SQL Server版本中,不能以密碼為NULL的sa來安裝服務(wù)。而在SSE中,必須以參數(shù)SAPWD="MyStrongPassword"來安裝。這里的強(qiáng)密碼表示至少不為NULL。最好使用不少于七位的字符并確保使用字母、數(shù)字和符號(hào)的混和形式。在學(xué)生練習(xí)之外的大多數(shù)情況下,需要為每個(gè)數(shù)據(jù)庫和應(yīng)用程序指定一個(gè)賬戶。應(yīng)避免讓一個(gè)應(yīng)用程序擁有可以訪問其他應(yīng)用程序數(shù)據(jù)的權(quán)限。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 石林| 高阳县| 搜索| 盐亭县| 汝南县| 三都| 清远市| 盈江县| 临邑县| 汉阴县| 木里| 重庆市| 清苑县| 大悟县| 乳山市| 乌兰察布市| 南昌县| 许昌县| 沁水县| 包头市| 那坡县| 新河县| 登封市| 玉林市| 乌兰察布市| 宁波市| 兰溪市| 珠海市| 镇巴县| 庆城县| 赤水市| 长沙市| 会同县| 当阳市| 贡嘎县| 怀宁县| 姚安县| 乌鲁木齐市| 赤壁市| 广汉市| 福泉市|