成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

如何在 SQL Server 故障轉(zhuǎn)移群集中啟用 Kerberos 身份驗(yàn)證

如何在 SQL Server 故障轉(zhuǎn)移群集中啟用 Kerberos 身份驗(yàn)證Kerberos 是一種網(wǎng)絡(luò)身份驗(yàn)證協(xié)議,用于為客戶端/服務(wù)器應(yīng)用程序提供嚴(yán)格的身份驗(yàn)證。 Kerberos 為互操作性奠定

如何在 SQL Server 故障轉(zhuǎn)移群集中啟用 Kerberos 身份驗(yàn)證

Kerberos 是一種網(wǎng)絡(luò)身份驗(yàn)證協(xié)議,用于為客戶端/服務(wù)器應(yīng)用程序提供嚴(yán)格的身份驗(yàn)證。 Kerberos 為互操作性奠定了基礎(chǔ),同時增強(qiáng)了企業(yè)范圍的網(wǎng)絡(luò)身份驗(yàn)證的安全性。

可以將 Kerberos 身份驗(yàn)證用于運(yùn)行在 Microsoft Windows 2000 Service Pack 3 (SP3) 上的 Microsoft SQL Server 2005 獨(dú)立實(shí)例或故障轉(zhuǎn)移群集實(shí)例。 SQL Server 2005 支持 Microsoft Windows 2000 Active Directory 域典型安裝中包含的這個功能。

當(dāng) SQL Server 所依賴的網(wǎng)絡(luò)名稱資源在基于 Windows 2000 的群集中時,將計(jì)算機(jī)升級到 Windows 2000 SP3 后,就可以對該資源使用 Kerberos 身份驗(yàn)證。 有關(guān)對服務(wù)器群集啟用 Kerberos 的其他信息,請參閱知識庫文章“Kerberos Support on Windows 2000-based Server Clusters”。

下一節(jié)介紹了如何連接到運(yùn)行 Microsoft Internet 信息服務(wù) (IIS) 的服務(wù)器,以便與運(yùn)行 SQL Server 的服務(wù)器建立 Kerberos 連接。

只有在運(yùn)行 Windows 2000 SP3 時才能使用此功能。

在執(zhí)行設(shè)置過程之前,請先下載 Kerbtray 和 SetSPN 實(shí)用工具。

? 若要下載 Kerbtray 實(shí)用工具,請?jiān)L問 Microsoft 網(wǎng)站。 使用 Kerbtray.exe ,您可以在所使用的任意關(guān)聯(lián)計(jì)算機(jī)上輕松地驗(yàn)證和/或刪除 Kerberos 票證。

? 若要下載 SetSPN 實(shí)用工具,請?jiān)L問 Microsoft 網(wǎng)站。

僅在客戶端使用 TCP/IP 協(xié)議連接到 SQL Server 時,SQL Server 才使用 Kerberos 。 例如,如果客戶端使用命名管道協(xié)議,則不使用 Kerberos 。 如果計(jì)算機(jī)上存在多個 SQL Server 實(shí)例,則必須為每個 SQL Server 實(shí)例配置服務(wù)器主體名稱,因?yàn)槊總€ SQL Server 實(shí)例都使用唯一的 TCP-IP 端口。

,

,

1. 步驟 1:配置域控制器

在域控制器的“Active Directory 用戶和計(jì)算機(jī)”中:

1. 右鍵單擊要設(shè)置委托的計(jì)算機(jī)(IIS 服務(wù)器),再單擊選中“此計(jì)算機(jī)可以信任,可用來委托”。 如果運(yùn)行 SQL Server 的計(jì)算機(jī)似乎是所連接的最后一臺計(jì)算機(jī),但該計(jì)算機(jī)有一臺鏈接服務(wù)器,則還必須向其授予委托權(quán)限。 如果它不是鏈中的最后一臺計(jì)算機(jī),則必須信任中間的所有計(jì)算機(jī),使它們可用于委托。

2. 向 SQL Server 服務(wù)帳戶的域用戶帳戶授予委托權(quán)限。 您必須有一個域用戶帳戶用于所安裝的 SQL Server 群集(對于使用本地系統(tǒng)帳戶運(yùn)行 SQL Server 的計(jì)算機(jī),不需要此步驟):

a. 在 Users 文件夾中,右鍵單擊用戶帳戶,再單擊“屬性”。

b. 在“用戶帳戶屬性”對話框中,單擊“帳戶”選項(xiàng)卡。

c. 在“帳戶選項(xiàng)”下,單擊以選中“帳戶可以信任,可用來委托”復(fù)選框。 確保為此帳戶取消選中“帳戶是敏感帳戶,不能被委托”復(fù)選框。

3. 使用 Kerbtray.exe 實(shí)用工具來驗(yàn)證 Kerberos 票證是否是從域控制器和主機(jī)接收到的:

a. 右鍵單擊通知區(qū)域中的 Kerbtray 圖標(biāo),再單擊“清除票證”。

b. 等待綠色的 Kerbtray 圖標(biāo)從綠色變?yōu)辄S色。 之后,立即打開命令提示符窗口,然后運(yùn)行以下命令: net session* /d

這將刪除現(xiàn)有會話,然后強(qiáng)制建立新會話并接收 Kerberos 票證。

步驟 2:配置 IIS 服務(wù)器

1. 用 .asp 示例文件替換默認(rèn)網(wǎng)站的 Wwwroot 文件。 若要創(chuàng)建 .asp 示例文件,請使用“用于檢索 SQL Server 數(shù)據(jù)的 ASP 測試腳本”一節(jié)中提供的代碼。

2. 將該文件添加到 Wwwroot 文件夾。 若要執(zhí)行此操作,請使用“用于檢索 SQL Server 數(shù)據(jù)的 ASP 測試腳本”一節(jié)中的代碼。 將該文件另存為 Default.asp 。

,

3. 將 Web 服務(wù)器重新配置為僅使用集成 Windows 身份驗(yàn)證:

a. 右鍵單擊默認(rèn)的 Web 服務(wù)器,再單擊“安全性”文件夾。

b. 在“安全性”文件夾中,進(jìn)行正確的更改,再單擊以清除“匿名訪問”。

c. 從命令提示符運(yùn)行以下命令:

cscript C:Inetpub?minscripts?sutil.vbs get

w3svc/NTAuthenticationProviders

如果啟用了“協(xié)商”,將返回以下信息:

NTAuthenticationProviders : (STRING) Negotiate,NTLM

有關(guān)將 IIS 配置為支持 Kerberos 和 NTLM 身份驗(yàn)證的其他信息,請參閱知識庫文章“How to Configure IIS to Support Both Kerberos and NTLM Authentication”。

4. 驗(yàn)證注冊表中是否存在 HKLMSWMSMSSQLSERVERClientDSQUERY 值。 如果未顯示該值,請將該值作

為 DSQUERY:Reg_SZ:DBNETLIB 添加。

5. 使用 Kerbtray.exe 實(shí)用工具來驗(yàn)證 Kerberos 票證是否是從域控制器和主機(jī)接收到的:

a. 右鍵單擊通知區(qū)域中的 Kerbtray 圖標(biāo),再單擊“清除票證”。

b. 等待綠色的 Kerbtray 圖標(biāo)從綠色變?yōu)辄S色。 之后,立即打開命令提示符窗口,然后運(yùn)行以下命令:

net session * /d

這將刪除現(xiàn)有會話,然后強(qiáng)制建立新會話并接收 Kerberos 票證。

步驟 3:為 SQL Server 創(chuàng)建 SPN

,

若要為 SQL Server 配置 SPN ,請使用 Microsoft Windows 資源工具包中的 SETSPN 實(shí)用工具。 若要下載 SETSPN 實(shí)用工具,請?jiān)L問 Microsoft 網(wǎng)站。

在運(yùn)行 SETSPN 之前,請注意下列事項(xiàng):

?

? 必須以有權(quán)注冊 SPN 的登錄帳戶運(yùn)行 setspn.exe 。 請注意運(yùn)行 SQL Server 實(shí)例的域用戶帳戶。 在下列示例中,此帳戶命名為

重要提示:如果在 LocalSystem 帳戶下運(yùn)行 SQL Server 實(shí)例,則不必運(yùn)行 SETSPN 實(shí)用工具。

? 必須擁有運(yùn)行 SQL Server 的計(jì)算機(jī)的完全限定域名 (FQDN)。 若要確定運(yùn)行 SQL Server 的計(jì)算機(jī)的

FQDN ,請使用 ping 實(shí)用工具。 為此,請按下列步驟進(jìn)行操作:

1. 對運(yùn)行 SQL Server 的計(jì)算機(jī)執(zhí)行 ping 來確定其 IP 地址:

C:>ping MySQLServer

Pinging MySQLServer.MyDomain.com [10.10.10.10] with 32 bytes of data:

Reply from 10.10.10.10: bytes=32 time=1ms TTL=128

2. 使用 ping -a 對 IP 地址執(zhí)行反向查找,以確保域名系統(tǒng) (DNS) 協(xié)議正確返回了 FQDN :

C:>ping -a 10.10.10.10

Pinging MySQLServer.MyDomain.com [10.10.10.10] with 32 bytes of data:

Reply from 10.10.10.10: bytes=32 time<1ms TTL=128

3. Ping 故障轉(zhuǎn)移群集實(shí)例名稱以獲得 IP 地址,然后運(yùn)行 ping -a 以確保 FQDN 的確是由 DNS 返回的。

,

在確定運(yùn)行 SQL Server 服務(wù)的域用戶帳戶、運(yùn)行 SQL Server 的計(jì)算機(jī)的 FQDN 以及 SQL Server 實(shí)例所使用的 TCP/IP 端口之后,請按照下列步驟為 SQL Server 創(chuàng)建 SPN 。

1. 如果使用了 SQL Server 故障轉(zhuǎn)移群集,請運(yùn)行以下 SETSPN 命令:

setspn -A MSSQLSvc/

例如,如果 MySQLServer.MyDomain.com 在域用戶帳戶 SQLSVC 下運(yùn)行,其中

MySQLServer.MyDomain.com 是 SQL Server 2005 群集實(shí)例的名稱,請運(yùn)行以下命令:

setspn -A MSSQLSvc/MySQLServer.MyDomain.com SQLSVC

2. 對于運(yùn)行 SQL Server 的群集和非群集計(jì)算機(jī),請運(yùn)行以下 SETSPN 命令,為運(yùn)行 SQL Server 的計(jì)算機(jī)所使

用的端口注冊 SPN :

setspn -A MSSQLSvc/:

例如,如果 MySQLServer.MyDomain.com 在域用戶帳戶 SQLSVC 下、端口 1433 上運(yùn)行,請使用以下

SETSPN 命令:

setspn -A MSSQLSvc/MySQLServer.MyDomain.com:1433 SQLSVC

3. 注冊 SPN 后,使用 SETSPN 實(shí)用工具的 LIST 功能(-L 開關(guān))驗(yàn)證是否已正確注冊 SPN 。 運(yùn)行 SETSPN -L

以列出在運(yùn)行 SQL Server 實(shí)例的域用戶帳戶中注冊的所有 SPN :

setspn -L

例如,如果 MySQLServer.MyDomain.com 在域用戶帳戶 SQLSVC 下、端口 1433 上運(yùn)行,請使用以下命

令:

,

setspn -A SQLSVC

在步驟 1(如果 SQL Server 是群集服務(wù)器)和步驟 2(如果 SQL Server 不是群集服務(wù)器)中創(chuàng)建的 SPN 將

顯示在以下輸出中:

C:>setspn -l SQLSVC

Registered ServicePrincipalNames for CN=SQLSVC,CN=Users,DC=MyDomain,DC=com:

MSSQLSvc/MySQLServer.MyDomain.com

MSSQLSvc/MySQLServer.MyDomain.com:1433

步驟 4:配置客戶機(jī)

1. 對于每個將要連接的客戶端,驗(yàn)證 Microsoft Internet Explorer 是否已配置為使用 Windows 身份驗(yàn)證:

2. 在 Internet Explorer 中,在“工具”菜單上,單擊“Internet 選項(xiàng)”。

3. 單擊“高級”選項(xiàng)卡。

在“安全”下,單擊以選中“啟用集成 Windows 身份驗(yàn)證(需要重啟動) ”,然后單擊“確定”。

步驟 5:測試配置

對于涉及的每臺計(jì)算機(jī):

1. 登錄到該計(jì)算機(jī),然后使用 Kerbtray.exe 來驗(yàn)證該計(jì)算機(jī)是否可以從域控制器獲取有效的 Kerberos 票證。

2. 使用 Kerbtray.exe 刪除該計(jì)算機(jī)上的所有票證。

,

3. 創(chuàng)建并連接到用于返回 SQL Server 數(shù)據(jù)的網(wǎng)頁。

? 如果返回了數(shù)據(jù),此頁將顯示身份驗(yàn)證類型 Negotiate 和 sp_helpdb 存儲過程的結(jié)果 SQL Server 數(shù)據(jù),該

存儲過程應(yīng)返回通過 .ASP 頁連接到的服務(wù)器上的數(shù)據(jù)庫列表。

? 如果在 SQL Server 上啟用了審核,則在應(yīng)用程序日志中,將看到該連接是“可信”的。

用于檢索 SQL Server 數(shù)據(jù)的 ASP 測試腳本

下面是用于 SQL Server 數(shù)據(jù)的 ASP 測試腳本。 如果使用此代碼示例,請確保將 SQLSERVERNAME 替換為運(yùn)行 SQL Server 的計(jì)算機(jī)的名稱:

<@ Language=VBScript >

<="'auth_user' is" & request.servervariables("auth_user")>

<="'auth_type' is" & request.servervariables("auth_type")>

Connections string is " Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME

<

set rs = Server.CreateObject("ADODB.Recordset")

set cn = Server.CreateObject("ADODB.Connection")

cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Data Source=SQLSERVERNAME"

rs.open "MASTER..sp_helpdb",cn

Response.Write cstr(rs.Fields.Count) "
"

while not rs.EOF

Response.Write cstr(rs(0)) "
"

rs.MoveNext

wend

rs.Close

cn.Close

,

set rs = nothing ' Frees memory reserved by the recordset.

set cn = nothing ' Frees memory reserved by the connection.

>

如何收集 Active Directory 服務(wù)器主體名稱信息

若要收集 Active Directory 服務(wù)器主體名稱 (SPN) 信息,請?jiān)谀硞€域控制器上鍵入下面的命令,其中 betaland 是 NetBIOS 域名,NewoutputUsers.txt 是用于輸出結(jié)果的輸出文件名。 如果不使用完整路徑,則文件將被放到運(yùn)行命令行時的當(dāng)前文件夾中。 此示例命令可查詢整個域:

ldifde -d "CN=Users,DC=betaland" -l servicePrincipalName -F NewoutputUsers.txt

此語法創(chuàng)建名為 NewoutputUsers.txt 的文件,其中包含的信息與本主題的“NewouputUsers.txt 的域級輸出”一節(jié)的輸出相似。

收集整個域的信息時,此輸出文件可能會過大。 因此,若要僅收集與特定用戶名相關(guān)的信息,請使用下面的語法,其中 User Name 是用戶名,betaland 是要查詢的域:

ldifde -d "CN=User Name,DC=betaland" -l servicePrincipalName -F NewoutputUsers.txt 收集特定用戶的信息可以大大減少搜索所涉及的數(shù)據(jù)。 如果收集整個域的信息,請搜索相關(guān)服務(wù)器的特定用戶名。 在輸出示例中,可以看到:

?

? 服務(wù)器項(xiàng)不再存在,但并未從 Active Directory 中完全刪除。 用戶“User Name”在大約十臺不同服務(wù)器上擁有有效的 SPN 信息。

另外,可以使用 Active Directory 服務(wù)接口 (ADSI) 工具更正無效的 Active Directory 項(xiàng)。

注意:如果使用 ADSI 編輯管理單元、LDP 實(shí)用工具或其他 LDAP 版本 3 客戶端,并且錯誤修改了 Active Directory 對象的屬性,可能會導(dǎo)致嚴(yán)重問題。 若要解決這些問題,可能需要重新安裝 Microsoft Windows 2000 Server 和/或 Microsoft Exchange 2000 Server。 Microsoft 不能保證解決由于錯誤修改 Active Directory 對象的屬性而出現(xiàn)的問題。 若要修改這些屬性,您必須自行承擔(dān)風(fēng)險。

NewouputUsers.txt 的域級輸出

dn: CN=User Name,CN=Users,DC=betaland

changetype: add

,

servicePrincipalName: MSSQLSvc/CLUSTERDEFAULT.betaland:1257 servicePrincipalName: MSSQLSvc/INST3.betaland:3616

servicePrincipalName: MSSQLSvc/INST2.betaland:3490

servicePrincipalName: MSSQLSvc/SQLMAN.betaland:1433 servicePrincipalName: MSSQLSvc/VSS1.betaland:1433

servicePrincipalName: MSSQLSvc/INST1.betaland:2536

servicePrincipalName: MSSQLSvc/INST4.betaland:3967

servicePrincipalName: MSSQLSvc/SQLVIRTUAL1.betaland:1434 servicePrincipalName: MSSQLSvc/SQLVIRTUAL.betaland:1433 servicePrincipalName: MSSQLSvc/SQLBUSTER.betaland:1315

標(biāo)簽: