如何重置SQL Server sa密码

arm*_*man 2 sql-server passwords sa reset-password

我忘记了 sa 密码并且已经禁用了 Windows 身份验证模式。
如何
提前在禁用Windows身份验证tnx的情况下重置SQL Server sa密码

Fra*_*ers 5

我有同样的问题。尝试用谷歌搜索它,所有标准解决方案都不起作用,所以我必须发挥创意。本质上我的问题是SA帐户被禁用,而且系统设置为仅允许通过Windows身份验证登录,最后Windows中的管理员帐户也不是sysadmin角色的成员。因此,所有正常的建议都不断给我带来权限被拒绝的错误(因为我没有权限更改其他帖子告诉我应该更改的内容)。

我的解决方案记录如下,仅应用您需要的部分:

第 1 阶段:- 让 SSMS 在单用户模式下工作

  1. 打开 Sql 服务器配置管理器 (SSCM)
  2. 单击 SQL Server 服务
  3. 右键单击 SQL Server (MSSQLSERVER),然后单击属性
  4. 单击高级选项卡
  5. 找到“启动参数”并添加以下内容
    • “-m;” 在开头或“;-m”在结尾(注意分号但不带引号)
    • 小心不要添加任何空格,因为解析器非常挑剔
  6. 按确定
  7. 再次右键单击并按重新启动
    • 如果您遇到服务无法启动的任何问题,请验证步​​骤 5。

第 2 阶段:第 1 部分:- 启用 SQL Server 和 Windows 身份验证模式

  1. 再次启动 SSMS。
    • 这次 SSMS 启动时,它将以单用户模式启动,为您提供完全访问权限。
  2. 像以前一样使用常用的 Windows 帐户登录。
  3. 右键单击服务器节点(第一个/最上面的节点)并选择属性。
  4. 单击安全
  5. 在“服务器身份验证”下,单击“SQL Server 和 Windows 身份验证模式”(如果尚未选择)。
  6. 单击“确定”

第 2 阶段:第 2 部分:- 将您自己添加到系统管理员角色中

  1. 单击“安全”,然后单击“服务器角色”
  2. 右键单击“sysadmin”角色
  3. 在弹出的窗口中,点击底部的添加。
  4. 在弹出的窗口中点击浏览
  5. 找到您的用户并单击名称旁边的复选框。
  6. 单击确定 - 这将返回到步骤 4 中的窗口,现在您的用户将出现在下方的框中。
  7. 单击确定 - 这将返回到步骤 3 中的窗口,该窗口会将您的用户添加到角色成员列表中。
  8. 单击“确定”。- 恭喜您,您现在拥有SA用户的所有权限。

第 2 阶段:第 3 部分:更改 SA 密码并启用帐户

  1. 双击安全性。
  2. 双击登录。
  3. 右键单击 SA 并选择属性。
  4. 更改并确认密码字段(但先不要按确定)。
  5. 单击“状态”选项卡。
  6. 单击已启用。
  7. 单击“确定”

这是重置任何用户密码(对于系统管理员)的过程。在此阶段您应该关闭 SSMS。

第 3 阶段:在多用户模式下重新启动 SSMS。

  1. 按照第 1 阶段中采取的步骤操作,只需删除 -m 即可;

第四阶段:试穿更大的鞋子。

在此阶段,您应该能够启用或禁用 SA 帐户登录并更改其密码,还应该能够启用或禁用使用 SQL Server 身份验证登录的功能。测试这些以确保您拥有必要的权利。

注意:一些受过教育的人应该这样做。我觉得一旦你设置了一个新的 SQL Server 实例,系统管理员帐户应该是第一个设置的。

有些人建议删除 SA 帐户(我个人建议在其上设置一个非常强的密码)。只要您拥有系统管理员帐户就可以,但必须有人拥有具有系统管理员访问权限的帐户。出于显而易见的原因,该帐户不应命名为 Admin 或类似 God 的变体。还要避免使用诸如您的公司名称以及两者的组合等名称。

至于启用或禁用 sql server 身份验证,这是一个争论,我将留给数据库管理员。

希望您觉得这有帮助。


小智 5

新的最佳方法:使用 PowerShell。Reset-SqlSaPassword允许管理员通过重置 sa 密码、向现有登录名添加 sysadmin 角色或添加新登录名(SQL 或 Windows)并授予登录名 sysadmin 权限来重新获得对本地或远程 SQL Server 的访问权限。需要 Windows 管理员访问权限。

在此输入图像描述

这是通过停止 SQL 服务或 SQL 集群资源组,然后使用 /mReset-SqlSaPassword 参数通过命令行重新启动 SQL 来完成的,该参数以单用户模式启动服务器,并且只允许 Reset-SqlSaPassword 连接。

服务重新启动后,将执行以下任务:

如果不存在则添加登录

  • 项目清单
  • 登录已启用
  • 登录已添加到 sysadmin 角色
  • 登录已解锁
  • 如果登录的是 Windows 用户,则会尝试确保帐户存在
  • 如果登录是 SQL 登录:
  • 将出现安全密码提示
  • 密码策略设置为关闭
  • SQL Server 身份验证设置为混合模式

为了使该脚本尽可能可移植,使用了 System.Data.SqlClient 和 Get-WmiObject(而不是需要故障转移群集管理工具或 SMO)。如果针对远程 SQL Server 使用此函数,请确保 WinRM 已配置且可访问。如果不可能,请在本地运行脚本。适用于 x86 和 x64。