본문 바로가기

RDBMS/SQL Server

SQL Server의 DB 복구시 로그인 계정 연결 문제

:: 참고 : How to troubleshoot orphan users in SQL Server databases?


데이터베이스의 사용자(user)와 로그인 계정(login)이 일치하지 않아서 발생하는 문제라는 건 예전부터 알고 있었는데, 이를 해결하는 sp가 따로 있는지는 몰랐었다. 해서 원격 DB를 마이그레이션 할 일이 생기면 그때마다 사용자를 제거했다가 다시 로그인 계정을 생성하는 방식으로 매칭을 시켰더랬는데 이럴 수가...

sp_change_users_login 구문
sp_change_users_login [ @Action = ] 'action'    [ , [ @UserNamePattern = ] 'user' ]    [ , [ @LoginName = ] 'login' ]        [ , [ @Password = ] 'password' ]

다음 명령으로 로그인 계정에 연결되지 않은 사용자를 조회할 수 있다 :
EXEC sp_change_users_login 'Report';
또한 다음 명령으로 로그인 계정에 연결되지 않은 사용자를 사용자를 위한 로그인 계정을 생성하고 할당할 수 있다 :
USE AdventureWorks;
GO
EXEC sp_change_users_login 'Auto_Fix', 'username', NULL, 'passowrd';
GO
더 자세한 내용은 SQL Server 2005 매뉴얼에서 sp_change_users_login 시스템 프로시저 항목에서 읽어보자.