我们有以下设置:
- 一个域控制器(DC,Server 2003 R2 Standard x64)
- 一台 SQL Server ( SQL , Server 2008 R2 Standard x64)
- 一些客户。
所有机器都在同一个域中。所有正在使用的用户帐户都是域帐户。SQL运行每个 SQL Server 2005、2008、2008R2、2012 和 2014 的一个实例。
从今晚开始(DC重新启动以安装自动 Windows 安全更新),通过 Windows 身份验证访问 SQL 2005、2008 和 2008R2 实例不再正常工作:
访问这些实例之一时
- 来自其中一位客户
- 使用 Windows 身份验证
出现以下错误(这是 2008R2 消息,2005/2008 消息类似):
登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。(Microsoft SQL Server,错误:18452)
显然,消息文本不适用,因为只有一个域。
现在令人惊讶的是:一旦用户登录SQL(启动 RDP 会话,甚至只是运行runas /user:MYDOMAIN\someuser cmd
并保持窗口打开),该用户就可以毫无问题地从所有客户端访问所有 SQL Server 实例,直到进程运行该用户的凭据已关闭。
这意味着我可以通过对SQL上的所有用户执行一次上述 runas 命令(并保持窗口打开)来解决这个问题,但是,显然,有些东西被严重破坏了。我怀疑今晚在DC上的安全更新与它有关(因为这是唯一改变的东西),但我宁愿避免卸载并重新启动其中的每一个(安装了 12 个更新,而DC确实又旧又慢)。
有没有人遇到过这个问题并且知道如何永久修复它?任何其他想法(除了花接下来的几天成为 Kerberos 专家)?
检查您的 DC 今晚是否安装了更新 KB3002657。请参阅http://support2.microsoft.com/?kbid=3002657 我遇到了同样的问题。卸载此更新为我解决了这个问题。
通过组策略进行的以下修复对我有用:
gpupdate /force
在受影响的计算机和服务器上运行。