电竞比分网-中国电竞赛事及体育赛事平台

分享

網(wǎng)站通過Windows身份驗(yàn)證連接SQL Server,發(fā)布到IIS后無法連接的問題

 instl 2018-02-10

操作系統(tǒng)使用的是WIN7,IIS版本為7.5,其他IIS版本未做測(cè)試,不一定適用本文所述方法。


之前用ASP.NET做了一個(gè)小網(wǎng)站,通過Windows身份驗(yàn)證來連接SQL Server數(shù)據(jù)庫。

在開發(fā)環(huán)境中使用時(shí)也一直沒有問題。

然而,把網(wǎng)站發(fā)布到IIS上進(jìn)行測(cè)試的時(shí)候出現(xiàn)了異常,提示無法連接到數(shù)據(jù)庫。


查了資料,找到以下兩種方法:

1、將數(shù)據(jù)庫連接方式改為通過賬號(hào)密碼來訪問

      這種方式可以解決問題,但不是我所需要的,此處就不做過多的說明了。


2、在IIS管理器中,找到網(wǎng)站使用的應(yīng)用程序池,在高級(jí)配置中,找到[標(biāo)識(shí)]

      可以看到默認(rèn)選中的是ApplicationPoolIdentity

      將[標(biāo)識(shí)]改為L(zhǎng)ocalSystem即可

      這種方式也可以解決問題,但是卻使用了更高的用戶權(quán)限

      以具有高級(jí)別用戶權(quán)限的帳戶運(yùn)行應(yīng)用程序池存在嚴(yán)重的安全風(fēng)險(xiǎn),因此不推薦使用


那么問題就來了,怎么做才更好呢?

解決問題的關(guān)鍵點(diǎn)還是在于這個(gè)默認(rèn)選中的標(biāo)識(shí)ApplicationPoolIdentity,這是幾個(gè)選項(xiàng)中最安全的

在啟動(dòng)應(yīng)用程序池時(shí)動(dòng)態(tài)創(chuàng)建了一個(gè)跟“應(yīng)用程序池標(biāo)識(shí)”同名的帳戶

此時(shí),在訪問數(shù)據(jù)庫時(shí)也是通過這個(gè)帳戶來訪問的

那么問題就好解決了,在SQL Server中,在相應(yīng)的數(shù)據(jù)庫中添加這個(gè)帳戶對(duì)數(shù)據(jù)庫的相關(guān)權(quán)限就可以了

需要注意的是:再添加的時(shí)候,帳戶名要跟異常信息中提示的那個(gè)帳戶名一致

例如:

應(yīng)用程序池名為:ASP.NET v4.0

對(duì)應(yīng)的帳戶名為:ASP.NET v4.0

在SQL中添加為:IIS APPPOOL\ASP.NET v4.0

數(shù)據(jù)庫--安全性--用戶,右鍵新建用戶

用戶名:IIS APPPOOL\ASP.NET v4.0

登錄名:IIS APPPOOL\ASP.NET v4.0

再設(shè)置該帳戶的數(shù)據(jù)庫角色成員身份并保存


參考資料:

“應(yīng)用程序池標(biāo)識(shí)”對(duì)話框

http://technet.microsoft.com/zh-cn/library/cc731981.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多