如何恢复MSSQL用户的密码?

我的任务是将我们从十年前的系统(Access '97)转移到一个全新的系统,使用MS SQL Express 2008作为后端。 太好了,我知道我可以连接到数据库(成功与只读的用户),唯一的问题是…我没有一个用户在写入权限的数据库,我们没有源访问到应用程序来知道该应用程序使用什么密码(虽然,我有用户名)。

所以,正如我所看到的,我有两个select:

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

这些select中的任何一个都是可行的和/或可能的,以及我将如何去关于它们中的一个或两个,因为我坐在计算机的正面,可以完全访问任何东西。

通常,这是通过以单用户模式启动SQL Server并插入一个新的SQLpipe理员用户来完成的,然后您可以使用它来获得完全访问权限。 我会避免更改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 

编辑(在链接腐烂的情况下):一旦你有一个查询窗口在单用户模式下打开,你应该能够添加一个服务器pipe理员login,你可以使用:

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

在你的情况下,SQLlogin已启用,否则你将无法使用只读login,但是对于其他人,可能需要通过检查或编辑registry来确保SQLlogin已启用 (将MSSQL.1replace为任何实例之后,但最有可能的是.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--------------------------------- 

最后,如果您的salogin被禁用,并且您想启用它 (但是如果您的应用程序正在使用sa,或者您可能会破坏整个事情,则不要这样做):

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

我不是100%确定你在问什么。 它几乎听起来像你的应用程序使用硬编码的用户名和密码?!?!?

如果你的问题只是重置SQL Server的'sa'帐户,那么你可以重置'sa'密码(假设你有物理访问权限)。

  1. 以pipe理员身份login到物理机器。

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

  3. 右键单击服务器名称,然后select“编辑SQL Server注册属性”。

  4. select“使用Windows身份validation”,然后单击确定。

  5. 展开服务器,展开安全性,然后单击login。

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