¿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).
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.
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.
- 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-Service
- Abra el editor del registro (
regedit.exe
) y vaya a la clave de registro de servicio SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER; - 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
- Iniciar SQL Server:
net start MSSQLSERVER
- 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;
- 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;
- Vaya a Seguridad-> Inicios de sesión y busque el usuario sa. El usuario sa está deshabilitado de forma predeterminada;
- 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);
- 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)
- 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
- 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
); - Inicie el servicio SQL Server normalmente;
- 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.
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:
- Inicie SQL Server en modo de usuario único como se describe anteriormente;
- Abra el símbolo del sistema y conéctese a su instancia de SQL Server:
sqlcmd –S localhost
- 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 - 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.