sábado, abril 02, 2011

Disaster Recovery: ¿Cómo recuperar la contraseña del usuario SA en SQLServer 2005 y 2008?

El post el cual cito como referencia al final de este artículo fue el que me salvó de tener que reinstalar SQLServer 2008 Express Edition, si bien la solución planteada en el post era para SQLServer 2005 también sirve para la versión 2008.

El problema fue, obviamente, que me olvidé de la contraseña del SA de la instancia del SQLServer 2008 Express pues además tengo instalada la versión 2005 Express que es la que uso habitualmente.

Lo primero que intenté fue loguearme en el SQLServer Management Studio Express usando la autenticación Windows, es decir, entrar con mi usuario de red y así poder cambiar la contraseña del SA, pero me encontré con este mensaje de error:

Msg 15151, Level 16, State 1, Line 1
Cannot alter the login 'sa', because it does not exist or you do not have permission.

La solución fue seguir las indicaciones del post que mencioné antes y los pasos fueron:

  1. Abrir el Configuration Manager Tool desde el menú "Microsoft SQL Server 2008 \ Configurations Tools"
  2. Parar la instancia del SQLServer de la cual se quiere recuperar la contraseña del SA.
  3. Acceder a las propiedades de la instancia (botón derecho Properties) e ir hasta el tab Advanced y ahí ir hasta la propiedad "Startup parameters" y agregar al final de todo ";-m" (las comillas no van y asegurarse de no dejar espacio entre el ; y lo que ya había en esa propiedad)
  4. Guardar este cambio en las propiedades y "arrancar" nuevamente la instancia
  5. Desde una línea de comandos DOS, conectarse a la instancia con sqlcmd -S ComputerName\instance (ComputerName es el nombre de la computadora o servidor e instance es el nombre de la instancia en mi caso era SQLEXPRESS2008)
  6. Luego escribir esta línea y presionar enter EXEC sp_addsrvrolemember 'DOMINIO\USUARIO', 'sysadmin'; (en este caso puse el dominio y usuario con el que me logueo a mi PC y que además tiene permisos de administrador sobre mi PC, se supone que esto lo que hace es darle los mismos previlegios a mi usuario que los que tiene el SA pues se le asigna el rol sysadmin)
  7. Luego escribir GO y presionar enter
  8. Luego de esto sacar el ";-m" de los "Startup parameters" y reiniciar la instancia
  9. Conectarse al SQLServer Management Studio Express usando la autenticación Windows y si van a Security \ Logins van a ver el usuario que le agregaron el rol de sysadmin en el paso 6 y yendo a las propiedades del usuario SA deberían poder cambiarle la contraseña
Disclaimer: es una receta que en mi caso me funcionó y no me hago responsable del uso que puedan hacer de estas indicaciones ni de lo que puedan llegar a romper haciendo esto.

La fuente original esta aquí:

15 comentarios:

dubaloop dijo...

Love your site man keep up the good work

cialis

Anónimo dijo...

el cambio de contraseña en mi caso no funciona, en win7 mi usuario es administrador por ende no tuve q hacer las 2 cosas anteriores, pero habilitando la sesion de sa y asignandole una contraseña no funciona de todos modos.

Gio dijo...

Abrir el Configuration Manager Tool desde el menú "Microsoft SQL Server 2008 \ Configurations Tools"

Gio dijo...

no encuentro estas opciones en sql server 2005:
Abrir el Configuration Manager Tool desde el menú "Microsoft SQL Server 2008 \ Configurations Tools"

Anónimo dijo...

GROSOOOO!!!!
Me estaba volviendo loca con esto...
Yo tengo Win7, sql server 2008
Segui los pasos al pie de la letra y funcionó perfecto
Muuuuuuuchas gracias!!

Anónimo dijo...

excelente!! muchas gracias.

Ivan Salazar dijo...

creo que mi problema va mas lejos, despues de hacer todo el procedimiento me da "Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired" y de ninguna forma me deja accesar a la DB. tengo SQL Server 2005 sobre Windows 2008 Server R2.

Anónimo dijo...

espectacular!!!!!

Anónimo dijo...

todo bien, pero no me animo a hacer todo eso,, se cae el motor y me asesinan, ,jja, gracias igual, calculo que funciona !

Anónimo dijo...

Perfecto muchas gracias

Anónimo dijo...

Excelente, me sirvió de mucho!!...muchas gracias!! +10

Faustino Olan dijo...

Excelente me sirvio mucho muchas gracias!!!

Agustín Descalzi dijo...

Funcionó correctamente!!!

Ya había probado varias formas que encontré en la web pero ninguna funcionó.

Muchas gracias.

Saludos

Anónimo dijo...

Extraordinario! gracias por la publicación, funciona perfectamente!

Anónimo dijo...

Funciona perfecto, muchas gracias!!

Tengo la versión express y win 8.