Esta semana he tenido un caso bastante curioso y, gracias a dios, poco común.
Uno de nuestros clientes nos pidió ayuda con una de sus instancias de SQL Server ya que habían perdido la contraseña de su cuenta SA y no tenían ningún otro login que tuviera permisos de sysadmin, por lo que no podían ejecutar casi ninguna tarea en la instancia. Mi mensaje fue bastante claro: recuperar este acceso no es algo que debiera ser fácil, y lo más probable es que tuvieran que hacer una migración a una nueva instancia donde sí tuvieran los permisos necesarios.
Investigando más en profundidad, descubrí que había algunas opciones para acceder a la instancia como administrador pese a no tener estos permisos y, después de probar varias opciones, una de ellas funcionó.
Cómo acceder a una instancia SQL Server como administrador sin tener permisos
Primero de todo, para que sea necesario tener que hacer esto y además funcione se tienen que cumplir los siguientes requisitos:
- No tener acceso a la cuenta SA ni a ningún login con permisos sysadmin
- Tener acceso al servidor donde se encuentra la instancia con permisos de administrador sobre el servidor
- Tener el permiso del cliente para reiniciar los servicios SQL y cambiar el modo a single-user mode.
- Tener suerte: No puedo garantizar que esto funcione para todas las versiones de SQL Server ya que la seguridad ha ido cambiando a lo largo de los años.

Si cumplimos con todos estos requisitos, vamos con la magia.
Cambiar los parámetros de inicio de la instancia SQL Server a modo single user
Esto es facilito, nos vamos a SQL Server configurator manager, hacemos click derecho sobre los servicios de la instancia y añadimos el -f en los parámetros de arranque.

Nota: Para que este cambio se aplique es necesario reiniciar los servicios.
Conectarnos a la instancia SQL Server usando linea de comando CMD
Abriremos una consola (CMD) como administrador (botón derecho > abrir como administrador) y nos conectaremos usando la siguiente orden:
SQLCMD -SnombreInstancia

Si hemos tenido suerte, nos habremos conectado y ahora podremos ejecutar querys sql con permisos de administrador. En este caso vamos a habilitar la cuenta SA y también crearemos un nuevo login con permisos de administrador.

Devolver la instancia SQL Server al modo de inicio multi-user
Aquí revetiremos el cambio que hicimos al principio, retiramos el -f y reiniciaremos los servicios de nuevo.

Nos conectaremos a la instancia con la cuenta SA o con el nuevo login
Si todo ha salido bien, ya tendremos la cuenta SA desbloqueada o también podremos conectarnos con el nuevo login que hemos creado.

Como digo, no es algo que pueda garantizar que te vaya a funcionar pero que en mi caso lo ha hecho y la verdad que no tenia muchas esperanzas…
Si te ha funcionado, me alegro mucho. Si no, suerte con tu migración.
¿Todavía tienes dudas?
Si este post no ha solucionado tu problema o todavía tienes dudas sobre este o cualquier otro asunto relacionado con SQL Server, puedes enviarme un mensaje o solicitar una consultoría gratuita haciendo clic aquí.
Esta muy interesante este POST, ¡¡¡lo puse a prueba y sorpresa!! me funciono, pero tuve un detalle y es que la Instancia no tenía habilitada la opción de conectarse por medio de SQL Server Authentication, estaría genial si pudieras compartir si se puede desde el CMD cambiar la configuración de la Instancia en caso de no tenerla seleccionado, te comparto una imagen de lo que me refiero, Saludos!
Buenas Luis,
Lo primero de todo me alegro mucho que te haya funcionado aunque sea parcialmente.
Respecto a tú otra consulta, una vez que estés conectado a la instancia puedes ejecutar cualquier query por lo que sí, puedes cambiar el modo de autenticación de «Sólo Windows» a «Mixed mode (SQL Logins y cuentas de windows)». Lo digo un poco de memoria pero creo que tendrias que ejecutar lo siguiente:
USE [master]
GO
EXEC xp_instance_regwrite N’HKEY_LOCAL_MACHINE’,
N’Software\Microsoft\MSSQLServer\MSSQLServer’, N’LoginMode’, REG_DWORD, 2
GO
Quizás tengas que cambiar algo de la ruta, ya me dirás si te ha funcionado.
Un saludo.