当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

作者:精品下载站 日期:2024-12-14 23:15:15 浏览:14 分类:玩电脑

如何在 Microsoft SQL Server 上重置 SA 密码


在本文中,我们将了解如何在 Microsoft SQL Server 2019/2017/2014/2012 中重置SA(系统管理员)密码。如果您无法使用以下命令进行身份验证,本指南将帮助您恢复对 MSSQL 数据库的访问

sa

帐户(

sa

密码忘记/丢失/帐户被禁用)或作为 Windows 用户(如果没有具有 MS SQL 系统管理员权限的用户)。

本地sa是SQL Server中众所周知的管理帐户。在大多数情况下,它被禁用,但您可以启用它、设置/重置其密码并恢复对 SQL Server 的访问。

要在不完全重新安装 MS SQL 实例(并且丢失数据库)的情况下恢复对数据库的访问,您需要以单用户模式启动 SQL Server。在此模式下,您可以使用安装MS SQL Server的计算机上具有本地管理员权限的任何帐户登录SQL Server。然后,您可以重置 sa 帐户密码和/或向特定 Windows 帐户授予管理权限。

提示。从 SQL Server 2008 开始,默认情况下不会将 SQL Server 上的 sysadmin 角色分配给本地 Windows 管理员组。

为了在单用户模式下运行 MS SQL Server,请使用 Windows 中具有本地管理员权限的任何帐户登录到 MSSQL 主机。

  1. 从命令提示符停止 SQL Server 实例(在我们的示例中,MSSQL 实例名称为 MSSQLSERVER

    net stop MSSQLSERVER

    或使用 PowerShell:

    Get-Service MSSQLSERVER| Stop-Service

    [玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

  2. 打开注册表编辑器(

    regedit.exe

    )并转到 SQL 服务注册表项:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER

  3. 通过将 -m 选项添加为 sqlservr.exe 的参数来更改 ImagePath 参数的值。例如,设置以下启动字符串:

    "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -m 

    [玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

  4. 启动 SQL Server:

    net start MSSQLSERVER
  5. 您的 SQL Server 现在以单用户模式运行,并允许本地管理员组(或内置 Windows 管理员)的任何成员以 sysadmin 权限连接到 SQL Server 实例;

  6. 打开 SQL Server Management Studio (SSMS) 并使用本地管理员组成员的帐户连接到 SQL Server 数据库引擎;

    [玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

  7. 转到安全 -> 登录并找到sa用户。 sa用户默认是禁用的;

    [玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

  8. 打开其属性,转到常规选项卡,然后设置新的 SA 密码。然后在状态选项卡上启用此帐户(登录 -> 已启用);

    [玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

  9. 为了允许在本地 SQL 帐户(包括 sa)下连接到 MSSQL,您需要在安全选项卡上的服务器属性中启用SQL Server 和 Windows 身份验证模式。否则在本地sa账户下连接时,会出现错误:

    Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

    [玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

  10. 另外,在登录部分中,您可以添加所需的Windows用户(本地或域)并为其分配系统管理员权限(在服务器角色选项卡上)。或者,您可以从 sqlcmd cli 向用户添加角色:

    EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';)
    GO

    [玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

  11. 仍然需要再次停止 MSSQL 服务,通过删除“-m”开关返回 ImagePart 注册表参数的初始值(

    C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER

    );

  12. 正常启动SQL Server服务;

  13. 现在,您可以使用 SQL Server 身份验证模式下的 sa 帐户或已在 SQL Server 中授予 sysadmin 权限的 Windows 用户帐户连接到 SQL Server。

提示。您可以使用 SQL Server 配置管理器以单用户模式启动 SQL Server。为此,请转到所需 SQL 实例属性中的启动参数选项卡,然后添加-m启动选项。

[玩转系统] 如何在 Microsoft SQL Server 上重置 SA 密码

此外,您还可以使用 sqlcmd 命令行工具重置 SA 密码并授予对 SQL Server 的访问权限:

  1. 如上所述以单用户模式启动 SQL Server;

  2. 打开命令提示符并连接到您的 SQL Server 实例:

    sqlcmd -S localhost
  3. 要更改 SA 用户密码并启用它,请运行以下 T-SQL 命令:

    ALTER LOGIN sa enable
    GO
    ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331'
    GO
  4. 要在 MSSQL 中为 Windows 帐户(本例中为本地用户)授予 sysadmin 权限,请使用以下命令:

    CREATE LOGIN [mun-sql01\jsmith] FROM WINDOWS
    GO
    ALTER SERVER ROLE sysadmin ADD MEMBER [mun-sql01\jsmith]
    GO

在本文中,我们展示了如何在单用户模式下恢复对 SQL Server 的访问。在此模式下,您可以重置 sa(和其他 SQL 用户)密码,或向 Windows 用户帐户授予 SQL 管理员权限。单用户模式也可用于恢复MSSQL Server中的temdb数据库。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯