【问题标题】:how to reset SQL Server sa password如何重置 SQL Server sa 密码
【发布时间】:2019-08-31 15:16:04
【问题描述】:

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

【问题讨论】:

    标签: sql-server passwords reset-password sa


    【解决方案1】:

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

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

    服务重启后,会执行以下任务:

    如果登录名不存在则添加

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

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

    【讨论】:

    • 天哪,这是一个非常棒的脚本!我希望我能再支持你 100 次
    【解决方案2】:

    我遇到了同样的问题。尝试用谷歌搜索它,所有标准解决方案都不起作用,所以我不得不发挥创造力。本质上我的问题是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. 右键单击“系统管理员”角色
    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;

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

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

    注意事项:有些老师应该这样做。我觉得一旦你设置了一个新的 SQL 服务器实例,首先应该设置一个系统管理员帐户。

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

    关于启用或禁用 sql server 身份验证,我将留给数据库管理员讨论。

    希望对您有所帮助。

    【讨论】:

    • 这种方法是唯一对我有用的方法。从命令行运行 SQL Server 与将参数添加到服务启动(对我来说)不同 - 这就是诀窍。你让我免于长出一些新的白发。谢谢弗朗西斯。
    • @PRB - 很高兴我能帮上忙。我自己有一些白发自己弄清楚了。那些说删除SA帐户以防止黑客入侵的人对我来说有点极端。确定禁用它,但不要删除。原因正是如此。很难知道其他帐户具有 SA 权限,如果其他具有 SA 权限的帐户在常规管理期间由于任何原因被删除,您将陷入麻烦。大多数情况下,如果发生这种情况,您只需重新启用 SA 帐户并设置一个新的 SA 帐户并再次禁用它(但前提是 SA 存在)。所以我从不建议删除它。
    【解决方案3】:

    SQL Server 2008+ 的简单步骤,默认不再添加管理员组。

    从命令行(作为 Win 管理员):

    net stop MSSQLSERVER
    net start MSSQLSERVER /m /f
    ssms
    

    在这里(在启动的 SSMS 中)您可以创建其他系统管理员,更改 sa 密码。然后回到命令shell:

    net stop MSSQLSERVER
    net start MSSQLSERVER
    

    【讨论】:

      【解决方案4】:

      这是一个 5 分钟的分步视频,介绍如何使用 SQL Server 身份验证或 Windows 身份验证重置 SysAdmin 密码

                  https://www.youtube.com/watch?v=GOvbjo1tlYo
      

      基本步骤也是以单用户模式启动 SQL Server,然后添加新的 SysAdmin 用户。视频中突出显示的基本步骤如下

      逐步启动单用户模式

      1. SQL Server 配置管理器 - 确保在本地启用 NamedPipes/TCP
      2. 列出服务 一个。净开始 湾。 services.msc
      3. 停止服务 - net stop [SQL-SERVICENAME]
      4. 启动单用户模式 a) 网络启动 [SQL-SERVICENAME] -m"SQLCMD" b) "C:\Program Files\Microsoft SQL Server\MSSQL14.SQL1\MSSQL\Binn\sqlservr.exe" -sSQL1 -m"SQLCMD"
      5. SQLCMD -S [SQL 实例]
      6. sqlcmd - 登录 a) SQL 用户 - CREATE LOGIN [name] WITH PASSWORD='password';去 b) Windows 用户 - CREATE LOGIN [domainName\login_name] FROM WINDOWS;去吧
      7. sqlcmd a) SP_ADDSRVROLEMEMBER 名称,'SYSADMIN';去 b) 确认 - 从系统登录中选择名称;去;
      8. sqlcmd - 退出

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-14
        • 1970-01-01
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        • 2012-07-03
        • 2022-01-18
        • 1970-01-01
        相关资源
        最近更新 更多