如何恢复 MSSQL 用户密码?

如何恢复 MSSQL 用户密码?

我的任务是将我们从十年前的系统 (Access '97) 迁移到使用 MS SQL Express 2008 作为后端的全新系统。太好了,我知道我可以连接到数据库(使用只读用户成功),唯一的问题是... 数据库中没有具有写访问权限的用户,我们没有应用程序的源访问权限,无法知道应用程序使用的密码(不过,我有用户名)。

因此,据我所知,我有两个选择:

  • 以非破坏性(或可撤消)的方式恢复应用程序使用的用户的密码。
  • 在数据库中插入一个额外的管理用户,然后我可以将其用作数据导入用户。

考虑到我坐在电脑前可以完全访问电脑,可以做任何事情,这两个选项是否可行?我该如何处理其中一个或两个?

答案1

通常,这是通过在单用户模式下启动 SQL Server 并插入新的 sql 管理员用户来完成的,然后您可以使用该用户获得完全访问权限。我会避免更改 sa 密码,直到您知道应用程序是否正在使用它。

这里有一个带有说明的链接以及使用普通 SQL Server 执行此操作的屏幕截图。要将 SQL Express 置于单用户模式并打开查询窗口,请按如下方式操作:

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn> Sqlservr.exe -s SQLEXPRESS -m
C:\Program Files\Microsoft SQL Server\90\Tools\Binn> sqlcmd -S.\SQLExpress

编辑(如果链接失效):一旦在单用户模式下打开查询窗口,您应该能够添加可以使用的服务器管理员登录:

CREATE LOGIN MYADMIN WITH PASSWORD='myadminpassword'
SP_ADDSRVROLEMEMBER 'MYADMIN', 'SYSADMIN'

在你的情况下,SQL 登录已启用,否则你将无法使用只读登录,但对于其他人,他们可能需要确保SQL 登录已启用通过检查或编辑您的注册表(将 MSSQL.1 替换为您想要的任何实例,但最有可能的是 .1)。将其放入 .reg 文件中并运行它(或使用 RegEdit):

-------------COPY BELOW---------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer]
"LoginMode"=dword:00000002
-------------COPY TILL THIS---------------------------------

最后,如果你的 sa 登录被禁用,并且你想要启用它(但是如果你的应用程序正在使用 sa,请不要这样做,否则可能会破坏整个过程):

ALTER LOGIN sa ENABLE ;
GO
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>' ;
GO

答案2

我不太确定你在问什么。听起来你的应用程序好像使用了硬编码的用户名和密码?!?!?

如果您的问题仅仅是重置 SQL Server 的“sa”帐户,那么您可以按照以下方法重置“sa”密码(假设您可以物理访问该框)。

  1. 以管理员身份登录物理机。

  2. 运行 SQL Server 企业管理器。

  3. 右键单击服务器名称并选择“编辑 SQL Server 注册属性”。

  4. 选择“使用 Windows 身份验证”,然后单击“确定”。

  5. 展开服务器,展开安全,然后单击登录。

  6. 双击 sa 登录名并在“常规”选项卡上指定新密码。

相关内容