febrero 2, 2022

¿Cómo restablecer la contraseña de SA en Microsoft SQL Server?

En este artículo, echaremos un vistazo a cómo restablecer la contraseña SA (administrador del sistema) en Microsoft SQL Server 2019/2017/2014/2012 . Esta guía le ayudará a restaurar el acceso a la base de datos MSSQL si no puede autenticarse con la cuenta sa (la contraseña sa se olvidó/perdió/la cuenta se deshabilitó) o como usuario de Windows (si no hay usuarios con permisos de administrador de sistemas de MS SQL).

La sa local es una cuenta administrativa conocida en SQL Server. En la mayoría de los casos está deshabilitado, pero puede habilitarlo, establecer/restablecer su contraseña y restaurar el acceso a su servidor SQL.

Para restaurar el acceso a la base de datos sin reinstalar completamente la instancia de MS SQL (y con la pérdida de la base de datos maestra), debe iniciar SQL Server en modo de un solo usuario. En este modo, puede iniciar sesión en SQL Server con cualquier cuenta con permisos de administrador local en el equipo en el que está instalado MS SQL Server. A continuación, puede restablecer la contraseña de la cuenta sa o conceder permisos administrativos a cuentas de Windows específicas.

Tip. A partir de SQL Server 2008, el rol administrador de sistemas en un servidor SQL no se asigna de forma predeterminada al grupo local de administradores de Windows.

Para ejecutar MS SQL Server en modo de usuario único, inicie sesión en el host MSSQL en cualquier cuenta con permiso de administrador local en Windows.

  1. Detenga la instancia de SQL Server (en nuestro ejemplo, el nombre de la instancia de MSSQL es MSSQLSERVER) desde el símbolo del sistema net stop MSSQLSERVER o mediante PowerShell: Get-Service MSSQLSERVER| Stop-Servicedetenga el MSSQLSERVER a través de cli
  2. Abra el editor del registro (regedit.exe) y vaya a la clave de registro de servicio SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER;
  3. Cambie el valor del parámetro ImagePath agregando la opción-m sqlservr.exe. Por ejemplo, establezca la siguiente cadena de inicio: "C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -m  sql server ejecutar en modo de usuario único a través del registro
  4. Iniciar SQL Server: net start MSSQLSERVER
  5. Su SQL Server se está ejecutando ahora en modo de usuario único y permite que cualquier miembro del grupo de administradores locales (o el administrador de Windows integrado) se conecte a la instancia de SQL Server con privilegios de administrador del sistema;
  6. Abra SQL Server Management Studio (SSMS) y se conecte al motor de base de datos de SQL Server mediante una cuenta que sea miembro del grupo de administradores locales; conectarse a SQL serve en modo de usuario único a través de SQL Server Management Studio
  7. Vaya a Seguridad-> Inicios de sesión y busque el usuario sa. El usuario sa está deshabilitado de forma predeterminada;  El usuario sa está deshabilitado en MS SQL Server de forma predeterminada
  8. Abra sus propiedades, vaya a la pestaña General y establezca una nueva contraseña de SA. A continuación, habilite esta cuenta en la ficha Estado (Inicio de sesión -> Habilitado); SQL Server: Restablecer contraseña SA
  9. Para permitir la conexión a MSSQL en cuentas SQL locales (incluida sa), debe habilitar el modo de autenticación de SQL Server y Windows en las propiedades del servidor en la ficha Seguridad. De lo contrario, al conectarse con la cuenta sa local, aparecerá un error:
    Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

    habilitar el modo de autenticación de servidor y Windows en MSSQL

  10. También en la sección Inicios de sesión, puede agregar los usuarios de Windows necesarios (locales o de dominio) y asignarle un Administrador de sistemas (en la ficha Roles de servidor). O bien, puede agregar un rol al usuario desde la cli de sqlcmd:
    EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';)
    GO

    conceder el rol sysadmin de sql server al usuario de Windows
  11. Queda por detener de nuevo el servicio MSSQL, devolver el valor inicial del parámetro del registro ImagePart eliminando el conmutador «-m» (C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER);
  12. Inicie el servicio SQL Server normalmente;
  13. Ahora puede conectarse a SQL server con la cuenta sa en el modo de autenticación de SQL Server o con la cuenta de usuario de Windows a la que ha concedido privilegios de administrador de sistemas en SQL Server.
Tip. Puede iniciar SQL Server en modo de usuario único mediante el Administrador de configuración de SQL Server. Para ello, vaya a la pestaña Parámetros de inicio en las propiedades de la instancia SQL requerida y agregue la opción de inicio-m.

 configuración de sql server agregar parámetros de estratagema

Además, puede usar la herramienta de línea de comandos sqlcmd para restablecer la contraseña de SA y conceder acceso a SQL Server:

  1. Inicie SQL Server en modo de usuario único como se describe anteriormente;
  2. Abra el símbolo del sistema y conéctese a su instancia de SQL Server: sqlcmd –S localhost
  3. Para cambiar la contraseña de usuario SA y habilitarla, ejecute los siguientes comandos de T-SQL:
    ALTER LOGIN sa enable
    GO
    ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331'
    GO
  4. Para conceder permisos de administrador de sistemas en MSSQL para una cuenta de Windows (usuario local en este ejemplo), utilice los comandos:
    CREATE LOGIN FROM WINDOWS
    GO
    ALTER SERVER ROLE sysadmin ADD MEMBER
    GO

En este artículo, hemos mostrado cómo restaurar el acceso a SQL Server en modo de usuario único. En este modo, puede restablecer la contraseña de sa (y otros usuarios de SQL) o conceder permisos de administrador de SQL a las cuentas de usuario de Windows. El modo de usuario único también se puede usar para restaurar la base de datos temdb en el servidor MSSQL.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.