8 oct 2008

SQL SERVER y usuarios huérfanos

Algunas veces, especialmente cuando hacemos respaldos de una base de datos y nos la llevamos para otra máquina para hacer el restore, nos damos cuenta que el usuario que utilizábamos no existe, ha quedado huérfano.

He aquí como recomponer el asunto, desde como crear el Login USRBD1 linkearlo con el usuario USRBD1, todo en una base de datos llamado BD1

1-Se crea el login USRBD1 con su password correspondiente
USE [BD1]
GO
   CREATE LOGIN [USRBD1] WITH PASSWORD=N'PASSW@RD1', DEFAULT_DATABASE=[BD1],
       CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO


2- Se crea el usuario y se asocial al login creado anteriormente
USE [BD1]
GO
   CREATE USER [USRBD1] FOR LOGIN [USRBD1]
GO
   USE [BD1]
GO
   ALTER USER [USRBD1] WITH DEFAULT_SCHEMA=[USRBD1]
GO

USE [BD1]
GO
   CREATE SCHEMA [USRBD1] AUTHORIZATION [USRBD1]
GO

3-Se le asigna el rol de owner
USE [BD1]
GO
EXEC sp_addrolemember N'db_owner', N' USRBD1'
GO


4- ESTA ES LA LINEA MAGICA – con esta se reparan los usuarios huérfanos
EXEC sp_change_users_login 'Auto_Fix', ' USRBD1'

Gracias a Pigosky, Tito kun y Allan Senpai

Roy {aka. Foy}

Autor & Editor

Desarrallador y líder técnico, con experiencia en tecnologías Microsoft desde los tiempos del VB6 y el asp clásico hasta el .Net Core, pasando por COM+, javascript, angularjs, Ionic, xaml, cordova, MVC, Web Api, Sql Server, Oracle... . Ávido lector, apasionado programador.