Conectarse a SQL Server cuando los administradores del sistema no tienen acceso

En este tema se describe cómo se puede volver a obtener acceso a Motor de base de datos de SQL Server como administrador del sistema. Un administrador del sistema puede perder el acceso a una instancia de SQL Server debido a uno de los siguientes motivos:

  • Todos los inicios de sesión que son miembros del rol fijo de servidor sysadmin se han quitado por equivocación.

  • Todos los grupos de Windows que son miembros del rol fijo de servidor sysadmin se han quitado por equivocación.

  • Los inicios de sesión que son miembros del rol fijo de servidor sysadmin son para personas que han dejado la compañía o que no están disponibles.

  • La cuenta sa se ha deshabilitado o nadie conoce la contraseña.

Una manera de recobrar el acceso es reinstalar SQL Server y adjuntar todas las bases de datos a la nueva instancia. Esta solución requiere mucho tiempo y, para recuperar los inicios de sesión, podría ser necesario restaurar la base de datos master a partir de una copia de seguridad. Si la copia de seguridad de la base de datos master es antigua, podría no contener toda la información. Si la copia de seguridad de la base de datos master podría tener los mismos inicios de sesión que la instancia anterior; por consiguiente, los administradores aún no tendrán acceso.

Solución

Inicie la instancia de SQL Server en modo de usuario único usando las opciones -m o -f. Cualquier miembro del grupo local de administradores del equipo puede conectarse a la instancia de SQL Server como miembro del rol fijo de servidor sysadmin.

[!NOTA]

Cuando inicie una instancia de SQL Server en modo de usuario único, detenga primero el servicio del Agente SQL Server: de lo contrario, el Agente SQL Server podría conectarse primero e impedir que se conecte como un segundo usuario.

Cuando se usa la opción -m con sqlcmd o SQL Server Management Studio, se pueden limitar las conexiones a una aplicación cliente especificada. Por ejemplo, -m"sqlcmd" limita las conexiones a una conexión única 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 conectar a través del editor de consultas de Management Studio, use -m"Microsoft SQL Server Management Studio - Query".

Nota de seguridadNota de seguridad

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.

Para obtener instrucciones paso a paso sobre cómo iniciar SQL Server en modo de usuario único, vea Configurar opciones de inicio del servidor (Administrador de configuración de SQL Server).

Instrucciones paso a paso

Las instrucciones siguientes describen el proceso para conectarse a SQL Server 2012 que se ejecuta en Windows 8. Se proporcionan pequeñas modificaciones para las versiones anteriores de SQL Server o de Windows. Estas instrucciones deben realizarse mientras se tiene iniciada sesión en Windows como miembro del grupo local de administradores y en ellas se da por supuesto que SQL Server Management Studio está instalado en el equipo.

  1. Desde la página de inicio, inicie SQL Server Management Studio. En el menú Ver, seleccione Servidores registrados. (Si el servidor ya no está registrado, haga clic con el botón secundario en Grupos de servidores locales, seleccione Tareas y, a continuación, haga clic en Registrar servidores locales).

  2. En el área Servidores registrados, haga clic con el botón secundario en el servidor y, a continuación, haga clic en Administrador de configuración de SQL Server. Se debe solicitar permiso para ejecutarse como administrador y, a continuación, abrir el programa Administrador de configuración.

  3. Cierre Management Studio.

  4. En el Administrador de configuración de SQL Server, en el panel izquierdo, seleccione Servicios de SQL Server. En el panel derecho, busque la instancia de SQL Server. (La instancia predeterminada de SQL Server incluye (MSSQLSERVER) después del nombre del equipo. Las instancias con nombre aparecen en mayúsculas con el mismo nombre que tienen en Servidores registrados). Haga clic con el botón secundario en la instancia de SQL Server y, a continuación, haga clic en Propiedades.

  5. En la pestaña Parámetros de inicio, en el cuadro Especifique un parámetro de inicio, escriba -m y, a continuación, haga clic en Add. (Es un guion y a continuación una letra m minúscula).

    [!NOTA]

    En algunas versiones anteriores de SQL Server no hay ninguna pestaña Parámetros de inicio. En ese caso, en la pestaña Opciones avanzadas, haga doble clic en Parámetros de inicio. Los parámetros se abrirán en una ventana muy pequeña. Tenga cuidado de no cambiar ninguno de los parámetros existentes. Al final, agregue un nuevo parámetro ;-m y haga clic en OK. (Es un punto y coma, después un guion y a continuación una letra m minúscula).

  6. Haga clic en Aceptar y, después del mensaje para reiniciar, haga clic con el botón secundario en el nombre del servidor; a continuación, haga clic en Reiniciar.

  7. Una vez que se haya reiniciado SQL Server, su servidor estará en modo de usuario único. Asegúrese de que el Agente SQL Server no esté en ejecución. Si está iniciado, usará su única conexión.

  8. En la pantalla de inicio de Windows 8, haga clic con el botón secundario en el icono de Management Studio. En la parte inferior de la pantalla, seleccione Ejecutar como administrador. (Esto pasará sus credenciales de administrador a SSMS).

    [!NOTA]

    En versiones anteriores de Windows, la opción Ejecutar como administrador aparece como un submenú.

    En algunas configuraciones, SSMS intentará realizar varias conexiones. Se producirá un error en varias conexiones porque SQL Server está en modo de usuario único. Puede seleccionar una de las siguientes acciones para realizar. Realice una de las acciones siguientes.

    1. Conectar con el Explorador de objetos mediante la autenticación de Windows (que incluye sus credenciales de administrador). Expanda Seguridad, expanda Inicios de sesión y haga doble clic en su propio inicio de sesión. En la página Roles de servidor, seleccione sysadmin y, a continuación, haga clic en Aceptar.

    2. En lugar de conectar con el Explorador de objetos, conectar con una ventana de consulta mediante la autenticación de Windows (que incluye sus credenciales de administrador). (Solo puede conectarse de esta forma si no se conectó con el Explorador de objetos). Ejecute código como el siguiente para agregar un nuevo inicio de sesión Autenticación de Windows que sea miembro del rol fijo de servidor sysadmin. En el ejemplo siguiente se agrega un usuario de dominio denominado CONTOSO\PatK.

      CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS;
      ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];
      
    3. Si SQL Server se ejecuta en modo de autenticación mixto, conectar con una ventana de consulta mediante la autenticación de Windows (que incluye sus credenciales de administrador). Ejecute código como el siguiente para crear un nuevo inicio de sesión Autenticación de SQL Server que sea miembro del rol fijo de servidor sysadmin.

      CREATE LOGIN TempLogin WITH PASSWORD = '************';
      ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;
      
      Nota de advertenciaAdvertencia

      Reemplace ************ con una contraseña segura.

    4. Si SQL Server se ejecuta en modo de autenticación mixto y desea restablecer la contraseña de la cuenta sa, conectar con una ventana de consulta mediante la autenticación de Windows (que incluye sus credenciales de administrador). Cambie la contraseña de la cuenta sa con la siguiente sintaxis.

      ALTER LOGIN sa WITH PASSWORD = '************';
      
      Nota de advertenciaAdvertencia

      Reemplace ************ con una contraseña segura.

  9. En los pasos siguientes se vuelve a cambiar SQL Server al modo multiusuario. Cierre SSMS.

  10. En el Administrador de configuración de SQL Server, en el panel izquierdo, seleccione Servicios de SQL Server. En el panel derecho, haga clic con el botón secundario en la instancia de SQL Server y, a continuación, haga clic en Propiedades.

  11. En la pestaña Parámetros de inicio, en el cuadro Parámetros existentes, seleccione -m y, a continuación, haga clic en Remove.

    [!NOTA]

    En algunas versiones anteriores de SQL Server no hay ninguna pestaña Parámetros de inicio. En ese caso, en la pestaña Opciones avanzadas, haga doble clic en Parámetros de inicio. Los parámetros se abrirán en una ventana muy pequeña. Quite el parámetro ;-m que agregó anteriormente y, a continuación, haga clic en Aceptar.

  12. Haga clic con el botón secundario en el nombre del servidor y, a continuación, haga clic en Reiniciar.

Ahora debe poder conectarse normalmente con una de las cuentas que es miembro del rol fijo de servidor sysadmin.

Vea también

Conceptos

Iniciar SQL Server en modo de usuario único

Opciones de inicio del servicio de motor de base de datos