今天早上我们遇到了一个问题,我们的生产服务器似乎决定从混合身份验证模式更改为它自己自愿的仅 Windows 身份验证。我很想知道你们中的其他 DBA 是否曾经经历过这种情况,或者是否可以为我指明一个好的方向,以尝试确保这种情况不会再次发生在我们身上。除了典型使用之外,唯一似乎在数据库方面发生的另一件事是事务日志刚刚完成备份。
今天早上我们遇到了一个问题,我们的生产服务器似乎决定从混合身份验证模式更改为它自己自愿的仅 Windows 身份验证。我很想知道你们中的其他 DBA 是否曾经经历过这种情况,或者是否可以为我指明一个好的方向,以尝试确保这种情况不会再次发生在我们身上。除了典型使用之外,唯一似乎在数据库方面发生的另一件事是事务日志刚刚完成备份。
身份验证模式自行更改的可能性几乎为零。更有可能的是,它被意外更改了。
此更改需要重新启动 SQL Server 服务才能生效。可能发生的情况是,自上次重启(可能是几个月前)以来,身份验证模式发生了更改——然后,当实例重新启动时,更改“突然”似乎自行生效。
此特定配置存储在注册表中,因此如果您有服务器的操作系统备份,您可以进行一些研究以及时返回以确定它何时更改。
如果可以的话,我会检查服务器日志,我肯定会设置一个 DDL 触发器,以便在它发生变化时提醒你。
我怀疑它是自己改变的,但我发现一些文章表明您可以查看注册表以查看它的身份验证模式,这让我想知道身份验证模式是否在注册表/服务器级别而不是SQL 服务器级别。
这是注册表和查看注册表级别的代码:
资源
这是关于注册表的另一个主题。我可能会设置一个 powershell 脚本,它可以每 5 分钟检查一次,看看它是否设置正确。如果没有,我会让它改变它。我会查看服务器日志,看看是否显示对服务器的任何身份验证。
使用 powershell 脚本,如果让它每 5 分钟记录一次结果并提供日期戳,那么如果它再次更改,您将能够查明它更改的时间。也许这是 GPO 更新?
更多关于注册表级别。
更改注册表的脚本。
请注意,您似乎需要重新启动才能使此更改生效。查明服务器最后一次重新启动的时间,我猜您可以找到导致该事件发生的一些活动。