【发布时间】:2019-08-31 15:16:04
【问题描述】:
我忘记了我的 sa 密码并且已经禁用了 Windows 身份验证模式。
如何在禁用 Windows 身份验证的情况下重置 SQL Server sa 密码
提前 tnx
【问题讨论】:
标签: sql-server passwords reset-password sa
我忘记了我的 sa 密码并且已经禁用了 Windows 身份验证模式。
如何在禁用 Windows 身份验证的情况下重置 SQL Server sa 密码
提前 tnx
【问题讨论】:
标签: sql-server passwords reset-password sa
新的最佳方法:使用 PowerShell。 Reset-SqlSaPassword 允许管理员通过重置 sa 密码、将 sysadmin 角色添加到现有登录名或添加新登录名(SQL 或 Windows)并授予登录名 sysadmin 权限来重新获得对本地或远程 SQL Server 的访问权限。需要 Windows 管理员访问权限。
这是通过停止 SQL 服务或 SQL 群集资源组,然后使用 /mReset-SqlSaPassword 参数通过命令行重新启动 SQL 来完成的,该参数以单用户模式启动服务器,并且只允许 Reset-SqlSaPassword 连接.
服务重启后,会执行以下任务:
如果登录名不存在则添加
为了使此脚本尽可能可移植,使用了 System.Data.SqlClient 和 Get-WmiObject(而不需要故障转移群集管理工具或 SMO)。如果对远程 SQL Server 使用此函数,请确保 WinRM 已配置且可访问。如果这不可能,请在本地运行脚本。适用于 x86 和 x64。
【讨论】:
我遇到了同样的问题。尝试用谷歌搜索它,所有标准解决方案都不起作用,所以我不得不发挥创造力。本质上我的问题是SA帐户被禁用,系统也被设置为只允许通过windows身份验证登录,最后windows中的管理员帐户也不是sysadmin角色的成员。所以所有正常的建议一直给我权限被拒绝的错误(因为我没有权限更改其他帖子告诉我应该更改的内容)。
我的解决方案记录在下面,只应用您需要的部分:
第 1 阶段:- 让 SSMS 在单用户模式下工作
第 2 阶段:第 1 部分:- 启用 SQL Server 和 Windows 身份验证模式
第 2 阶段:第 2 部分:- 将自己添加到系统管理员角色中
第 2 阶段:第 3 部分:更改 SA 密码并启用帐户
这是重置任何用户密码的过程(对于系统管理员)。 在这个阶段你应该关闭 SSMS。
第 3 阶段:在多用户模式下重新启动 SSMS。
第 4 阶段:试穿更大的鞋子。
在这个阶段,您应该能够通过登录启用或禁用 SA 帐户并更改其密码,还应该能够启用或禁用使用 SQL Server 身份验证登录的能力。测试这些以确保您拥有必要的权利。
注意事项:有些老师应该这样做。我觉得一旦你设置了一个新的 SQL 服务器实例,首先应该设置一个系统管理员帐户。
有些人建议删除 SA 帐户(就我个人而言,我建议在其上设置一个非常强大的密码)。只要您有 sysadmin 帐户就可以了,但必须有人拥有具有 sysadmin 访问权限的帐户。出于显而易见的原因,不应将此帐户命名为 Admin 或其某些变体,例如 God。还要避免使用诸如您的公司名称和两者的组合等名称。
关于启用或禁用 sql server 身份验证,我将留给数据库管理员讨论。
希望对您有所帮助。
【讨论】:
SQL Server 2008+ 的简单步骤,默认不再添加管理员组。
从命令行(作为 Win 管理员):
net stop MSSQLSERVER
net start MSSQLSERVER /m /f
ssms
在这里(在启动的 SSMS 中)您可以创建其他系统管理员,更改 sa 密码。然后回到命令shell:
net stop MSSQLSERVER
net start MSSQLSERVER
【讨论】:
这是一个 5 分钟的分步视频,介绍如何使用 SQL Server 身份验证或 Windows 身份验证重置 SysAdmin 密码
https://www.youtube.com/watch?v=GOvbjo1tlYo
基本步骤也是以单用户模式启动 SQL Server,然后添加新的 SysAdmin 用户。视频中突出显示的基本步骤如下
逐步启动单用户模式
【讨论】: