SQL Server 2012 - Integrated Security 的远程连接问题

SQL Server 2012 - Distant connection issues with Integrated Security

我有两台 SQL 服务器:一台在法国第戎;一个在美国科罗拉多州阿瓦达。它们之间已经建立了数据复制。

当用户尝试连接到 SQL Server 2008 R2 Dijon 数据库时一切正常。

但是当我的一个用户试图从 VB.Net 应用程序连接到 SQL Server 2012 US 数据库时发生错误。

错误是:

"A connection was successfully established with the server, but then an error occurred during the login process (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)"

此错误仅针对一位用户显示。其他人可以毫无问题地连接。我可能对此有所了解。 我们已经遇到了他的连接问题,因为他属于许多 AD 安全组

这是连接字符串:

Data Source=server\instance;Initial Catalog=db;Integrated Security=SSPI;Connection Timeout=0;

对于试图连接到同一服务器的美国用户,我们遇到了同样的问题。但当他试图连接到第戎时却没有。你有什么线索可以帮助我解决这个问题吗?

我检查了 Whosebug 线程和网络上的其他解决方案,但没有任何帮助...

参考以下网址

Troubleshooting: Connection Forcibly Closed

TCP Provider, error:

connection was forcibly closed

按照以下步骤操作

  1. 首先进入服务查看'SQL Server Browser'服务是否启动,如果没有启动

  2. 打开SQL服务器配置管理器

  3. 转到 MS 协议SQL服务器
  4. 启用所有协议
  5. 转到 SQL 本机客户端
  6. Select 客户端协议和全部启用
  7. 重新启动 SQL 服务器服务。

使用 ..(SQL 服务器的 .NET Framework 数据提供程序)作为提供程序

连接字符串

  1. 数据源=server\instance;初始目录=;持久安全信息=True;用户 ID=;密码=;网络库=dbmssocn

如我所料,这是 Kerberos 身份验证 的问题,因为我的用户有太多的 AD 安全组... 解决方案在这里解释:Problems with Kerberos authentication when a user belongs to many groups and here MaxTokenSize and Windows 8 and Windows Server 2012

If the authorization data for a user attempting to authenticate is larger than the MaxTokenSize, then the authentication fails for that connection using that protocol.

在 Windows 7 和 Windows Server 2008R2 上,MaxTokenSize(Kerberos 的默认缓冲区大小)是 12k。它的大小在 Windows 8 和 Windows Server 2012 中增加到 48k。这对我来说还不够。

我必须在注册表中添加一个键值 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters\MaxTokenSizeREG_DWORD typedecimal65535).
然后我重新启动了服务器。

我的用户现在可以无错误地访问数据。