模板天下 | 网页模板 | 学 院 | 源 码 | 书 籍 | 壁 纸 | 字 体 | JS脚本 | FLASH源码 | 软 件 | 矢 量 | 服务器软件 | 素 材 | 其 它 | 测试 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 | 站长乐园 | 业界动态 |
当前在线
为SQL Server Authentication配置MaxTokenSize
2008-9-25 15:07:04  作者:模板天下收集整理  来源:未知 网友评论 0 条 论坛
  我们公司的(DBA)和web开发人员遇到用SQL Server Management Studio连接到SQL 实例(SQL instances)和用Windows集成身份验证(Windows Integrated Authentication)连接到其它SQL工具时出现的问题。 我们的公司很大,在Active Directory中拥有远远超过70000的用户和组。当我们查看SQL Server中的NT事件日志时,我们看到MSSQL和Kerberos两个错误。到底是什么造成了这些错误呢?

  专家解答

  当一个用户在Active Directory组中有很多成员,通常超过100个(这个数目包含明确的成员以及来自其它组的继承成员)时,这种情况会发生。尽管没有注册表项的默认值,但是MaxTokenSize的默认值为12000(十进制)。在绝大多数的组织机构里,这个大小是足够有余的。然而,在大型机构里,用户的tokens大于默认值。由于Kerberos不能接受损坏的tokens,身份验证会失败。如果你遇到这个问题,你将会看到两个错误信息,而这两个错误信息说明默认的MaxTokenSize是不足够的:

图一

  图一

  NT error log entry from the MSSQL service    
  

 

图二

  图二

  Microsoft有一个名为TokenSZ的工具,它可以用于确定用户的MaxTokenSize。有一些转换可以用于这个工具,但计算最大token大小的一般语法是:  

      Sample TokenSZ Syntax
  E:\>tokensz/compute_tokensize/user:Administrator/domain:CULLENSOLUTIONS.com /password:OU812
  Results of executing TOKENSZ

图三

  图三       

  在窗体顶部上方,你可以看到默认的token大小是12000。标红色的文本是这个网域管理实际最大的Token大小,这个大小远低于MaxToken的默认值。目前我被分配到的公司也遇到了MaxTokenSizes大小介于12000和15000的问题,所以需要做改动。

  一个注册表项的修改或增补需要修改被服务器允许的默认MaxTokenSize大小。注册表改动的位置在

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters部分。注意,执行TOKENSZ的服务器没有关于MaxTokenSize的表项。

图四

  图四

  要创建注册表项,请打开注册表编辑器(Registry Editor)并点击Start -> Run,接着键入regedit。一旦注册表编辑器打开,可浏览到

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters部分。右键单击右侧的白色区域,并选择New -> DWORD value:

图五

  图五

  重命名注册表项为“MaxTokenSize”,双击编辑,选择Decimal并输入65535。

图六

  图六  

  任何服务器工作站或者与SQL Server交互的服务器都要求注册表项。此外,机器需要重新启动使更改生效。一旦重启发生,你可以再次执行TokenSZ来看看MaxTokenSize值是否已经改变。

图七

  图七

共分1页  [1] 

>> 相关文章

关于网站 | 客服中心 | 服务条款 | 合作伙伴 | 广告联系 | 本站历程 | 网站导航 | 发布资源 == 好的资源 大家共享

吉ICP备05000107号