国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

如何在 SQL Server 故障轉移群集中啟用 Kerberos 身份驗證

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

如何在 SQL Server 故障轉移群集中啟用 Kerberos 身份驗證

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

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

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

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

只有在運行 Windows 2000 SP3 時才能使用此功能。

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

? 若要下載 Kerbtray 實用工具,請訪問 Microsoft 網站。 使用 Kerbtray.exe ,您可以在所使用的任意關聯計算機上輕松地驗證和/或刪除 Kerberos 票證。

? 若要下載 SetSPN 實用工具,請訪問 Microsoft 網站。

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

,

,

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

在域控制器的“Active Directory 用戶和計算機”中:

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

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

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

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

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

3. 使用 Kerbtray.exe 實用工具來驗證 Kerberos 票證是否是從域控制器和主機接收到的:

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

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

這將刪除現有會話,然后強制建立新會話并接收 Kerberos 票證。

步驟 2:配置 IIS 服務器

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

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

,

3. 將 Web 服務器重新配置為僅使用集成 Windows 身份驗證:

a. 右鍵單擊默認的 Web 服務器,再單擊“安全性”文件夾。

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

c. 從命令提示符運行以下命令:

cscript C:Inetpub?minscripts?sutil.vbs get

w3svc/NTAuthenticationProviders

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

NTAuthenticationProviders : (STRING) Negotiate,NTLM

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

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

為 DSQUERY:Reg_SZ:DBNETLIB 添加。

5. 使用 Kerbtray.exe 實用工具來驗證 Kerberos 票證是否是從域控制器和主機接收到的:

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

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

net session * /d

這將刪除現有會話,然后強制建立新會話并接收 Kerberos 票證。

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

,

若要為 SQL Server 配置 SPN ,請使用 Microsoft Windows 資源工具包中的 SETSPN 實用工具。 若要下載 SETSPN 實用工具,請訪問 Microsoft 網站。

在運行 SETSPN 之前,請注意下列事項:

?

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

重要提示:如果在 LocalSystem 帳戶下運行 SQL Server 實例,則不必運行 SETSPN 實用工具。

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

FQDN ,請使用 ping 實用工具。 為此,請按下列步驟進行操作:

1. 對運行 SQL Server 的計算機執(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 故障轉移群集實例名稱以獲得 IP 地址,然后運行 ping -a 以確保 FQDN 的確是由 DNS 返回的。

,

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

1. 如果使用了 SQL Server 故障轉移群集,請運行以下 SETSPN 命令:

setspn -A MSSQLSvc/

例如,如果 MySQLServer.MyDomain.com 在域用戶帳戶 SQLSVC 下運行,其中

MySQLServer.MyDomain.com 是 SQL Server 2005 群集實例的名稱,請運行以下命令:

setspn -A MSSQLSvc/MySQLServer.MyDomain.com SQLSVC

2. 對于運行 SQL Server 的群集和非群集計算機,請運行以下 SETSPN 命令,為運行 SQL Server 的計算機所使

用的端口注冊 SPN :

setspn -A MSSQLSvc/:

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

SETSPN 命令:

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

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

以列出在運行 SQL Server 實例的域用戶帳戶中注冊的所有 SPN :

setspn -L

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

令:

,

setspn -A SQLSVC

在步驟 1(如果 SQL Server 是群集服務器)和步驟 2(如果 SQL Server 不是群集服務器)中創(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:配置客戶機

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

2. 在 Internet Explorer 中,在“工具”菜單上,單擊“Internet 選項”。

3. 單擊“高級”選項卡。

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

步驟 5:測試配置

對于涉及的每臺計算機:

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

2. 使用 Kerbtray.exe 刪除該計算機上的所有票證。

,

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

? 如果返回了數據,此頁將顯示身份驗證類型 Negotiate 和 sp_helpdb 存儲過程的結果 SQL Server 數據,該

存儲過程應返回通過 .ASP 頁連接到的服務器上的數據庫列表。

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

用于檢索 SQL Server 數據的 ASP 測試腳本

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

<@ 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 服務器主體名稱信息

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

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

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

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

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

?

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

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

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

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

標簽: