故障排除:在系统管理员被锁定时如何连接到 SQL Server

本主题介绍作为系统管理员如何可以重新获得对 SQL Server 数据库引擎的访问权限。系统管理员可能会由于下列原因之一失去对 SQL Server 实例的访问权限:

  • 作为 sysadmin 固定服务器角色成员的所有登录名都已经被误删除。

  • 作为 sysadmin 固定服务器角色成员的所有 Windows 组都已经被误删除。

  • 作为 sysadmin 固定服务器角色成员的登录名用于已经离开公司或者无法找到的个人。

  • sa 帐户被禁用或者没有人知道密码。

可以让您重新获得访问权限的一种方法是重新安装 SQL Server 并将所有数据库附加到新实例。这种解决方案很耗时,并且若要恢复登录名,可能还需要从备份中还原 master 数据库。如果 master 数据库的备份较旧,则它可能未包含所有信息。如果 master 数据库的备份较新,则它可能与前一个实例具有同样的登录名;因此管理员仍将被锁定。

解决方法

使用 -m-f 选项在单用户模式下启动 SQL Server 的实例。计算机的本地 Administrators 组的任何成员都可以随后作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例。

注意注意

在单用户模式下启动 SQL Server 实例时,请首先停止 SQL Server Agent 服务。否则,SQL Server 代理可能会首先连接,并阻止您作为第二个用户连接。

当您将 -m 选项与 sqlcmd 或 SQL Server Management Studio 一起使用时,可以将连接限制为指定的客户端应用程序。例如,-m"sqlcmd" 将连接限制为单个连接并且该连接必须将自身标识为 sqlcmd 客户端程序。当您正在单用户模式下启动 SQL Server 并且未知的客户端应用程序正在占用这个唯一的可用连接时,使用此选项。若要通过 Management Studio 中的查询编辑器进行连接,请使用 -m"Microsoft SQL Server Management Studio - Query"

重要说明重要提示

不要将此选项作为安全功能使用。客户端应用程序提供客户端应用程序名称,并且提供假名称来作为连接字符串的一部分。

有关如何在单用户模式下启动 SQL Server 的分步说明,请参阅如何配置服务器启动选项(SQL Server 配置管理器)