刚刚在远程数据库服务器上遇到了一个有趣的情况,我没想到会发生这种事。
设置是服务器 A 是主网络中的域控制器,服务器 B 位于通过 VPN 连接的远程网络上。服务器 B 上有 SQL Server 2008。服务器 B 上运行着一个应用程序,出于本讨论的目的,该应用程序每分钟只插入/查询数据库。
今天,由于两台服务器之间的网络问题,VPN 掉线了 30 多分钟。数据库查询使用信任连接=sspi;凭据,在 VPN 断开时,前 20 分钟可能可以正常工作。但最终查询开始失败,并出现错误无法生成 SSPI 上下文。
由此我推断,sql server 缓存的凭据是正常的,并且正常命中,但一段时间后它们就失效了。由于与 DC 的连接断开,它无法刷新缓存并开始使查询失败。
我希望远程数据库能够在没有 VPN 或 DC 的情况下根据需要(最多数小时)工作。
我尝试四处寻找,但没有找到有关情况的任何信息,所以我想问是否有人知道是否有我可以调整的设置来放宽与此相关的规则?或者唯一的解决方案是在远程网络上部署 DC,这似乎有点过头了,因为这种情况是唯一的好处。
答案1
部署域控制器。如果希望在 VPN 中断的情况下服务器 B 上的服务继续运行,则需要部署一个域控制器。
即使你延长了 Kerberos 票证的有效期,也无法保证它不会在无法续订的 Kerberos 票证的有效期内过期;即使它能持续一周,你也无法保证它不会在 VPN 断开后 10 分钟过期。