一、概述
如果您丢失了 SA 密码,您可能认为唯一的选择是重新安装 SQL Server 并重新附加所有用户数据库。但是,SQL Server 提供了一种更好的灾难恢复方法,可以将对象和数据保留在 master 数据库中。只需在单用户模式下启动 SQL Server,您就可以使用 OSQL 命令轻松恢复 SA 密码。
二、方法步骤
2.1 方法一:单用户模式下的恢复
STEP1:以单用户模式启动 SQL Server
- 打开 SQL Server 配置管理器。
- 找到恢复 SA 密码所需的 SQL Server 实例。
- 停止 SQL Server 实例。
- 右键单击实例并选择属性。
- 单击高级选项卡,并添加-m;到启动参数的开头。
- 单击“确定”并启动实例。
STEP2:恢复 SQL Server SA 密码
- 打开提升的命令提示符并输入命令: osql -S myServer\instanceName -E 将 myServer\instanceName 替换为计算机的名称和要连接的 SQL Server 实例。
- 在接下来的提示中,输入以下命令: 1> alter login sa enable2> go1> sp_password NULL,'new_password','sa'2> go1> quit
- 停止 SQL Server 实例。
- 从启动参数字段中删除 -m 选项,然后启动 SQL Server 服务。
2.2 方法二: 如何在不停止 SQL Server 实例的情况下重置忘记的 SA 密码
上面分享的第一种方法需要重启SQLSERVER实例,也就是说会有短暂的停机,对应用会有短暂的影响 那如何在不停止 SQL Server 实例的情况下重置忘记的 SA 密码呢?
- 首先,我们需要以系统帐户运行 SQL Server Management Studio。这可以通过 PsExec 程序轻松完成。从Sysinternals 网站下载 PsExec 。解压缩 PsExec.exe 程序并将其保存到计算机上的文件夹中,例如 C:\。
- 打开提升的命令提示符并运行以下命令: C:\PsExec.exe -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe" 注意: SQL Server Management Studio 的实际路径可能与上面的不同。
- 它将作为系统帐户启动 SQL Server Management Studio。您会看到用户名显示为“NT AUTHORITY\SYSTEM”。只需选择“Windows 身份验证”模式并单击“连接”按钮。
- 连接后,在 Object Explorer 视图中,单击 Security 旁边的加号,然后单击 Logins 旁边的加号。展开后,右键单击 SA 用户,然后选择“属性”。然后,您可以使用新密码更改忘记的 SA 密码。
被锁定在 SQL Server 实例之外,或者只是忘记了 SA 密码是很常见的。通过这种方法,您可以轻松重置忘记的 SQL Server 密码!无需停机即可快速重新获得对 SQL Server 数据库的访问权限。此时,您应该能够使用 SA 用户帐户和您提供的新密码登录 SQL Server。
2.3 方法三:借助工具SQL Server Password Changer
除了使用 上述两种方法恢复 SA 密码外,您还可以使用SQL Server Password Changer等第三方软件重置/更改您忘记的 SA 密码。