SQL Server 2012 -远程连接问题与集成安全



我有两个SQL server:一个在法国第戎;一个在美国科罗拉多州的阿瓦达。两者之间已建立数据复制。

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

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

错误是:

"与服务器的连接已成功建立,但在登录过程中发生错误(提供者:TCP提供者,错误:0 -远程主机强制关闭了现有连接)。"

此错误只显示给一个用户。其他的连接没有任何问题。我也许有个线索。我们已经遇到了他的连接问题,因为他属于许多AD安全组

下面是连接字符串:

Data Source=serverinstance;Initial Catalog=db;Integrated Security=SSPI;Connection Timeout=0;

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

我从网上检查了StackOverflow线程和其他解决方案,但没有任何帮助我…

参考以下网址

故障处理:连接被强行关闭

TCP提供程序,错误:

连接被强行关闭

执行以下步骤

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

  2. 打开SQL Server Configuration Manager

  3. 启用所有协议
  4. 转到SQL本地客户端
  5. 选择Client Protocols and and Enable All
  6. 重启SQL Server服务

使用. .(.. NET Framework Data Provider for SQL Server)作为Provider

Connectionstring

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

正如我所料,这是一个Kerberos身份验证的问题,因为我的用户有太多AD安全组…这里解释了解决方案:当用户属于多个组时Kerberos身份验证的问题,这里是MaxTokenSize和Windows 8和Windows Server 2012

如果试图进行身份验证的用户的授权数据大于MaxTokenSize,则使用该协议的该连接的身份验证失败。

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

我必须在注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaKerberosParametersMaxTokenSize中添加一个键( REG_DWORD类型十进制65535)。
然后我重新启动了服务器。

我的用户现在可以访问数据没有错误

最新更新