首页 > 解决方案 > 通过脚本更新 SQL Server 2008 R2 用户的密码

问题描述

背景:我们在 SQL Server 2008 R2 上生产了一个旧系统。由于某些原因,未实现到辅助节点的实时复制。如果主要发生灾难,我们将切换到辅助计算机并恢复最新的可用备份(master、msdb、model dbs 除外)。我们的每个用户都通过 SQL Server 数据库用户访问应用程序。

问题:现在我担心的是,由于我们不会将主数据库恢复到辅助服务器,如何处理主数据库用户更改密码的情况。当我们从二级激活服务时,如何从一级恢复他们的密码?

一种方法是我们从主节点导出用户并在辅助节点上恢复它。但是这种方法的问题是二级用户的创建日期会发生变化,这将是一个审计问题。他们有什么办法只能更新密码吗?

问候萨尔曼

标签: sql-server-2008

解决方案


dbatools有非常方便的 PowerShell cmdlet ( Copy-DbaLogin ) 来执行此操作。只需创建一个作业来运行以下脚本:

Copy-DbaLogin -Source sqlserversrc -Destination sqlserverdst -Force

它将复制所有登录名sqlserversrcsqlserverdst覆盖它们以防它们存在(它将处理密码更改)。

另一种选择是使用 SSIS 和Transfer Logins Task

如果您升级到 SQL Server 2012(或更高版本),您还可以考虑使用包含的数据库。然后您将不需要在服务器上登录,因为具有密码的用户是数据库本身的一部分。


推荐阅读