Solucion para restaurar Logins en SQL Server
Hola colegas, Tengo el siguiente problema:
Tengo una Base de Datos en SQL Server 2005, en la cual se van registrando usuarios nuevos. La cosa está en que esos usuarios se crean fisicos en la base de datos y no solamente en una tabla, ya que la autenticacion en el sistema es mediante SQL server y no integrada. Por supuesto estos usuarios estan asociados a un login el cual es quien posee la contraseña. Mi problema actual es que cuando quiero montar la base de datos en otro servidor, pues los usuarios fisicos permanecen por supuesto en esta, pero los login se pierden, ya que lo que exporto es la base de datos no la configuracion del servidor anterior. Como los login son los que poseen la contraseña entonces los usuarios no se pueden autenticar porque a pesar de que existe su cuenta en la base datos, no existe el login.
Tengo una Base de Datos en SQL Server 2005, en la cual se van registrando usuarios nuevos. La cosa está en que esos usuarios se crean fisicos en la base de datos y no solamente en una tabla, ya que la autenticacion en el sistema es mediante SQL server y no integrada. Por supuesto estos usuarios estan asociados a un login el cual es quien posee la contraseña. Mi problema actual es que cuando quiero montar la base de datos en otro servidor, pues los usuarios fisicos permanecen por supuesto en esta, pero los login se pierden, ya que lo que exporto es la base de datos no la configuracion del servidor anterior. Como los login son los que poseen la contraseña entonces los usuarios no se pueden autenticar porque a pesar de que existe su cuenta en la base datos, no existe el login.
Para este problema vas a tener que cumplir con dos pasos
1ro : Crear los logins con el sp_addLogin, podrías hacer un script con un cursor sobre los sysusers de tu base de datos, si el login no existe, crearlo con el procedimiento almacenado
2do : como lo primero no es suficiente, ya que probablemente el identificados del usuario (SID) no coincida con el SID de la tabla syslogins de la Master, vas a tener que hacer un update sobre el sysusers de tu base de datos, esto es, mediante en nombre del usuario, igualar el SID de SysUsers con el SID de syslogins (Cuidado, nunca al revés).
Para poder complir estos dos pasos, vas a tener que ir a la canfiguración del servidor y tildar la opción que dice
Allow Modifications directly in catalog tables
o bien
Activar modificaciones directas sobre las tablas de catálogo.
Saludos
1ro : Crear los logins con el sp_addLogin, podrías hacer un script con un cursor sobre los sysusers de tu base de datos, si el login no existe, crearlo con el procedimiento almacenado
2do : como lo primero no es suficiente, ya que probablemente el identificados del usuario (SID) no coincida con el SID de la tabla syslogins de la Master, vas a tener que hacer un update sobre el sysusers de tu base de datos, esto es, mediante en nombre del usuario, igualar el SID de SysUsers con el SID de syslogins (Cuidado, nunca al revés).
Para poder complir estos dos pasos, vas a tener que ir a la canfiguración del servidor y tildar la opción que dice
Allow Modifications directly in catalog tables
o bien
Activar modificaciones directas sobre las tablas de catálogo.
Saludos