运行单用户模式时无法登录到 SQL Server 2008

5ar*_*arx 6 sql-server-2008 security

作为此处描述的过程的一部分,我正在按照此处的 MS 文档将登录名从 SQL Server 的一个实例迁移到另一个实例。这涉及将服务器置于单用户模式(我已经完成),然后运行脚本等。

但是,在单用户模式下(仅运行 SqlServer 服务)重新启动后,我无法使用我的 Windows 帐户或sa凭据登录。我收到错误:

Failed to connect to <servername>

Login failed for user 'sa'. Reason: Server is in single user mode. 
Only one administrator can connect at this time. (Microsoft SSQL Server, Error: 18461)
Run Code Online (Sandbox Code Playgroud)

正常重启服务器(即多用户模式)后,所有登录工作正常。

谁能解释发生了什么和/或如何纠正这个问题?

Mat*_*t M 10

这可能是因为您正在尝试使用 SSMS 进行连接。在 SSMS 中,对象资源管理器将打开一个与数据库的连接,而每个后续查询窗口将打开另一个与数据库的连接。

我过去所做的是打开 SSMS,不要通过对象资源管理器连接到任何数据库,并通过执行以下操作打开专用管理员连接 (DAC) 查询窗口:

  1. 点击新建查询
  2. 在“服务器名称”对话框中键入以下内容:ADMIN:ServerName\InstanceName
  3. 从这里,您可以在单用户模式下针对您的数据库运行所需的任何脚本。

这需要运行 SQL Server Browser 服务。

所有这一切的真正症结在于对象资源管理器会吃掉那个“单个用户”。

希望这可以帮助,

马特


mrd*_*nny 5

无需以单用户模式启动服务器即可使用 sp_help_revlogin 传输登录信息。

  • 我在 MSKB 文章中没有看到有关单用户模式的内容。我已经使用 sp_help_revlogin 数十次,而且我从未将系统置于单用户模式。 (2认同)