为SQL Server Authentication配置MaxTokenSize
问题
我们公司的(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大小的一般语法是:
![]() 图三 (编辑:滁州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |