代码之家  ›  专栏  ›  技术社区  ›  Nathan Taylor

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

  •  12
  • Nathan Taylor  · 技术社区  · 15 年前

    这相当令人尴尬,但我意外地从SQL Server 2008用户列表中删除了我的Windows帐户,我一辈子都无法在没有登录权限的情况下重新添加自己。

    服务器正在我的计算机上运行,只有其他具有访问权限的Windows用户是IUSR、网络服务和系统。除了重新安装,我还能做些什么吗?

    3 回复  |  直到 11 年前
        1
  •  26
  •   Beniaminus    14 年前

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

    来自MSDN:

    在单用户模式下启动SQL Server将启用 要连接到SQL实例的计算机的本地管理员组 服务器作为sysadmin固定服务器角色的成员。

    以下是我恢复自我的方法:

    1. 退出SSMS
    2. 停止任何与SQL相关的服务。我不得不停止报道服务。其他SQL服务(如SQL代理)也会占用您的宝贵连接。
    3. 停止SQL服务
    4. 用额外的参数启动SQL服务 -m . 这将使SQL进入单用户模式。这意味着SQL将只接受一个连接。
    5. 使用 sqlcmd 使用连接到服务器 -E 可信连接选项。SQL将接受您进入 sysadmin 角色(如果您是本地管理员)。
    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
      
    7. 停止SQL服务,删除 -m 参数并重新启动服务。现在您应该能够返回SSMS并继续正常使用服务器。

    如果您收到消息:

    用户“域\用户名”登录失败。原因:服务器处于单用户状态 模式。此时只能有一个管理员连接。

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

        2
  •  5
  •   Nathan Taylor    11 年前

    幸运的是,这并不难修复(不是说它应该很难…)!

    This blog post 解释在单用户模式下启动SQL Server的步骤,这些步骤(出于某种原因)允许我以Windows管理员帐户的身份登录,将该帐户添加到用户列表(使用创建登录),启用SA用户并将其密码设置为我实际知道的内容,最后以SA身份登录,并授予Windows帐户系统管理员权限。

    编辑07/05/13: Try this link instead .

        3
  •  0
  •   Davide Icardi i3arnon    11 年前

    通常安装SQL Server,以便任何本地管理员都是SQL Server sysadmin .

    如果是这种情况,您可以以管理员身份运行ManagementStudio,然后在“安全”部分中添加任何其他Windows用户作为登录名。

    这个解决方案对我有效。