SQL Server 2008 - 删除默认用户后添加Windows帐户

Nat*_*lor 12 sql-server login sql-server-2008

这是相当尴尬的,但我不小心从SQL Server 2008用户列表中删除了我的Windows帐户,我不能为我的生活找出如何重新添加自己,因为我没有登录权限.

服务器在我的机器上运行,只有其他具有访问权限的Windows用户是IUSR,NETWORK SERVICE和SYSTEM.有什么我可以做的没有重新安装?

Ben*_*nus 26

我最近还从我的本地开发2008服务器上删除了我的Windows帐户.我能够使用SQL Server的单用户模式重新创建我的登录并将其添加到sysadmin角色.只用了几分钟,我就不必向任何人承认我的可怕错误.

来自MSDN:

以单用户模式启动SQL Server使计算机的本地Administrators组的任何成员都可以作为sysadmin固定服务器角色的成员连接到SQL Server实例.

这是我恢复自己的方式:

  1. 退出SSMS
  2. 停止任何SQL相关服务.我不得不停止Reporting Services.其他SQL服务(如SQL Agent)也会耗尽您的一个有价值的连接.
  3. 停止SQL服务
  4. 使用extra参数启动SQL服务-m.这将使SQL进入单用户模式.这意味着SQL只接受一个连接.
  5. 用于使用可信连接选项sqlcmd连接到您的服务器-E.sysadmin如果您是本地管理员,SQL将接受您加入角色.
  6. 在交互式会话中,创建您的登录名并添加到该sysadmins角色.

    USE master
    GO
    CREATE LOGIN [domain\username] FROM WINDOWS WITH DEFAULT_DATABASE=[Master]
    GO
    EXEC sp_addsrvrolemember @loginame=N'domain\username', @rolename=N'sysadmin'
    GO
    
    Run Code Online (Sandbox Code Playgroud)
  7. 停止SQL服务,删除-m参数并重新启动服务.您现在应该可以返回SSMS并继续正常使用服务器.

如果你收到消息:

用户'domain\username'登录失败.原因:服务器处于单用户模式.此时只能有一个管理员连接.

然后有一些使用你的单一连接.您需要找到该服务或连接并在登录之前将其停止.检查SQL代理,SQL Reporting Services,SQL Analysis Services等.


Nat*_*lor 5

幸运的是,这并不难解决(不是说应该很难......)!

此博客文章介绍了在单用户模式下启动SQL Server的步骤,由于某种原因,这允许我以Windows管理员帐户登录,将帐户添加到用户列表(使用CREATE LOGIN),启用SA用户并设置它的密码是我实际知道的东西,最后以SA身份登录并授予Windows帐户sysadmin权限.

编辑07/05/13: 请尝试使用此链接.