Windows集成身份认证登录SQL Server失败

ZDNet软件频道 时间:2008-09-22 作者: | IT专家网 我要评论()
本文关键词:操作系统 身份认证 SQL Server Windows SQL Server
在之前的技巧中,您讨论了由于在Active Directory中存在大量的组,需要超越MaxTokenSize来容纳更大的Kerberos tokens。当采用Kerberos身份验证时,无论是使用什么技术,对web应用程序的补救方法是相同的。

  问题

  在之前的技巧中,您讨论了由于在Active Directory中存在大量的组,需要超越MaxTokenSize来容纳更大的Kerberos tokens。与此同时,我们也注意到MaxTokenSize需要做出相应调整,这是由于使用Windows集成身份认证(Windows Integrated Authentication)的web应用程序也出现了启动失败的问题,其中包括SQL Server Reporting Services。我就职的公司做出了必要的改动并重新启动了SQL和Web服务器。启动后,尽管SQL Server Management Studio的问题解决了,但是我们的Web应用程序仍然存在问题。请问还需要再做什么改动呢?

  专家解答

  先前关于Kerberos Token sizes的方法解决了在以下目录的一段注册表中修改MaxTokenSize的问题:HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaKerberosParameters。不幸的是,当使用Windows集成身份验证(Windows Integrated Authentication)连接到SQL Server时,这并不是预设大小的唯一的地方。额外的两个值是MaxFieldLength 和MaxRequestBytes。与MaxTokenSize不同的是,当问题影响到web应用程序时,它呈现出不同的一点。默认情况下,Windows集成身份验证(Windows Integrated Authentication)在Internet Explorer中启用,在Internet Options | Advanced界面中显示如下:

图一

  当用户尝试用别名或者DNS名称访问网页时,DNS解析将尝试进行。因为规模较大的Kerberos token大小超过默认的MaxFieldLength,你将立即得到错误的信息。这与由于在输入地址和接收“网页无法显示”的错误信息存在时间差而导致一个网页无法找到的情况不同。这个难题中有趣的部分在于,如果尝试要么用主机名要么用别名来访问网页,它是不会成功的。尽管如此,网页可以通过IP地址访问。然而,在网页加载时任何SQL查询的执行都会失败。

  当遇到网站错误时,Internet Explorer的默认行为是显示用户界面友好的信息。你可以在如下显示的Internet Explorer中关闭这种行为。

图二

  这些用户界面友好的讯息将提供用于解决问题的信息。一旦你关掉用户界面友好的信息,你将看到如下的信息:

  图三

  如上所述,额外注册表项需要超越这些默认值。注册表项的位置取决于使用的Internet Information Server (IIS)的版本。

  IIS version Registry location

  IIS 5.0 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesw3svcparameters

  IIS 6.0 HKEY_LOCAL_MACHINESystemCurrentControlSetServicesHTTPParameters

  Internet Information Services 5.0

  在IIS 5.0中,注册表项要求是MaxClientRequestBuffer DWORD项。Microsoft建议的DWORD值是32768。

  Internet Information Services 6.0

  在IIS 6.0中要求有两个注册表项。第一个是MaxFieldLength DWORD项。根据Microsoft的建议,DWORD值是65534。第二个是MaxRequestBytes DWORD,Microsoft的建议值是500000。

  一旦注册表项完成了,IIS Admin and dependent services需要重启,但是服务器不一定需要重启。原来的问题在Outlook Web Access中被发现,而补救方法在一篇有关Outlook Web Access的知识库文章中有所描述。当采用Kerberos身份验证时,无论是使用什么技术,对web应用程序的补救方法是相同的。

操作系统

身份认证

SQL Server

Windows

SQL Server


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134