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í.