如何重置SQL Server sa密码

时间:2014-01-25 11:28:56

标签: sql-server passwords reset-password sa

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

4 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。尝试谷歌搜索它,所有的标准解决方案都没有用,所以我必须有创意。基本上我的问题是SA帐户被禁用,系统也被设置为仅允许通过Windows身份验证登录,最后Windows中的管理员帐户也不是sysadmin角色的成员。所以所有正常的建议一直给我许可否认错误(因为我没有权限改变其他帖子告诉我应该改变的内容)。

我的解决方案如下所示,仅适用于您需要的部分:

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

  1. 打开Sql server配置管理器(SSCM)
  2. 单击SQL Server服务
  3. 右键单击SQL Server(MSSQLSERVER)并单击属性
  4. 单击高级选项卡
  5. 找到“启动参数”并添加以下内容
    • “ - 米;”在开头或“; -m”在结尾(注意分号但没有引号)
    • 小心添加任何空格,因为解析器非常挑剔
  6. 按ok
  7. 再次右键单击并按重启
    • 如果您在服务未启动时遇到任何问题,请验证步​​骤5.
  8. 第2阶段:第1部分: - 启用SQL Server和Windows身份验证模式

    1. 再次启动SSMS。
      • 这次SSMS启动时,它将以单用户模式启动,为您提供完全访问权限。
    2. 像以前一样使用常用的Windows帐户登录。
    3. 右键单击服务器节点(第一个/最顶层节点)并选择属性。
    4. 点击安全
    5. 在“服务器身份验证”下,单击“SQL Server和Windows身份验证模式”(如果尚未选中)。
    6. 点击确定
    7. 第2阶段:第2部分: - 将自己添加到系统管理员角色

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

        1. 双击安全性。
        2. 双击登录。
        3. 右键单击SA并选择属性。
        4. 更改并确认密码字段(但不要按确定)。
        5. 单击“状态”选项卡。
        6. 点击“启用”。
        7. 点击确定
        8. 这是重置任何用户密码(对于系统管理员)的过程。 在这个阶段你应该关闭SSMS。

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

          1. 按照第1阶段中的步骤操作,只需删除-m;
          2. 第四阶段:试穿更大的鞋子。

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

            注意:有些人应该这样做。我觉得在设置新的SQL服务器实例后,系统管理员帐户应该是首先设置的。

            有些人建议删除SA帐户(就个人而言,我建议只在其上添加一个非常强大的密码)。只要您拥有sysadmin帐户,这很好,但某人必须拥有sysadmin访问权限的帐户。出于显而易见的原因,此帐户不应被命名为Admin或其中某些变体。还要避免使用诸如公司名称和其他组合之类的名称。

            关于启用或禁用sql server身份验证,我将留给DB管理员进行辩论。

            希望您觉得这很有帮助。

答案 1 :(得分:2)

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

enter image description here

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

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

如果不存在,则添加登录

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

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

答案 2 :(得分:0)

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

从命令行(以Win管理员身份):

net stop MSSQLSERVER
net start MSSQLSERVER /m /f
ssms

在此处(在已启动的SSMS中),您可以创建其他sysadmins,更改sa密码。然后回到命令外壳:

net stop MSSQLSERVER
net start MSSQLSERVER

答案 3 :(得分:0)

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

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

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

逐步启动单用户模式

  1. SQL Server配置管理器-确保在本地启用NamedPipes / TCP
  2. 列出服务 一种。净启动 b。 services.msc
  3. 停止服务-网站[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 INSTANCE]
  6. sqlcmd-登录     a)SQL用户-使用PASSWORD ='password'创建登录名[name];走     b)Windows用户-从WINDOWS创建登录[domainName \ login_name];开始
  7. sqlcmd     a)SP_ADDSRVROLEMEMBER名称,'SYSADMIN';走     b)确认-从syslogins中选择名称;开始;
  8. sqlcmd-退出