Iniciar SQL Server en modo de usuario único

Se aplica a:SQL Server

En determinadas circunstancias, puede que sea necesario iniciar una instancia de SQL Server en modo de usuario único mediante la opción de inicio-m. Por ejemplo, podría querer cambiar las opciones de configuración del servidor o recuperar una base de datos master dañada u otra base de datos del sistema. Ambas acciones requieren que se inicie una instancia de SQL Server en modo de usuario único.

Para restaurar una base de datos master en Linux en modo de usuario único, consulte Restauración de la base de datos maestra en Linux en modo de usuario único.

Al iniciar SQL Server en modo de usuario único se permite que cualquier miembro del grupo local de administradores del equipo se conecte a la instancia de SQL Server como miembro del rol fijo de servidor sysadmin. Para obtener más información, consulte Conectarse a SQL Server cuando los administradores del sistema no tienen acceso.

Tenga en cuenta los siguientes aspectos cuando inicie una instancia de SQL Server en modo de usuario único:

  • Solo se podrá conectar al servidor un único usuario.

  • No se ejecuta el proceso CHECKPOINT. De manera predeterminada, se ejecuta automáticamente en el inicio.

Nota

Detenga el servicio del Agente SQL Server antes de conectarse a una instancia de SQL Server en modo de usuario único; de lo contrario, el servicio del Agente SQL Server utilizará la conexión y, por tanto, la bloqueará.

Al iniciar una instancia de SQL Server en modo de usuario único, SQL Server Management Studio puede conectarse a SQL Server. Se podría producir un error en el Explorador de objetos de Management Studio porque requiere más de una conexión para algunas operaciones. Para administrar SQL Server en modo de usuario único, ejecute las instrucciones de Transact-SQL conectándose a través del Editor de consultas de Management Studio o Azure Data Studio, o use la funcionalidad sqlcmd.

Cuando use la opción -m con SQLCMD o Management Studio, puede limitar las conexiones a una aplicación cliente especificada.

Nota

En Linux, SQLCMD debe escribirse en mayúsculas como se muestra.

Por ejemplo, -m"SQLCMD" limita las conexiones a una única conexión y esa conexión se debe identificar como el programa cliente sqlcmd. Use esta opción cuando esté iniciando SQL Server en modo de usuario único y una aplicación cliente desconocida esté usando la única conexión disponible. Para conectarse mediante el editor de consultas de Management Studio, use -m"Microsoft SQL Server Management Studio - Query".

Importante

No use esta opción como una característica de seguridad. La aplicación cliente proporciona el nombre de la misma y puede proporcionar un nombre falso como parte de la cadena de conexión.

En el siguiente ejemplo se inicia la instancia de SQL Server en modo de usuario único y solo se permite la conexión a través del Editor de consultas de SQL Server Management Studio.

net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"

Nota para instalaciones en clúster

Para la instalación de SQL Server en un entorno en clúster, cuando SQL Server se inicia en modo de usuario único, la DLL de recursos de clúster utiliza la conexión disponible, con lo que impide cualquier otra conexión con el servidor. Cuando SQL Server está en este estado, si se intenta poner en línea el recurso del Agente SQL Server, puede producir la conmutación por error del recurso de SQL a otro nodo si el recurso está configurado para afectar al grupo.

Para solucionar el problema, utilice el procedimiento siguiente:

  1. Quite el parámetro de inicio -m de las propiedades avanzadas de SQL Server.

  2. Ponga sin conexión el recurso de SQL Server .

  3. Desde el nodo de propietario actual de este grupo, ejecute el comando siguiente en el símbolo del sistema:

    net start MSSQLSERVER /m
    
  4. Compruebe en el administrador de clústeres o en la consola de administración de clústeres de conmutación por error que el recurso de SQL Server sigue estando sin conexión.

  5. Conéctese a SQL Server usando el siguiente comando y realice la operación necesaria: SQLCMD -E -S<servername>.

  6. Una vez completada la operación, cierre el símbolo del sistema y vuelva a poner en línea SQL y otros recursos mediante el administrador de clústeres.

Consulte también