데이터베이스의 사용자(user)와 로그인 계정(login)이 일치하지 않아서 발생하는 문제라는 건 예전부터 알고 있었는데, 이를 해결하는 sp를 찾아 냈다. 해서 원격 DB를 마이그레이션 할 일이 생기면 그때마다 사용자를 제거했다가 다시 로그인 계정을 생성하는 방식으로 매칭을 시켰는데
sp_change_users_login 구문
sp_change_users_login [ @Action = ] 'action' [ , [ @UserNamePattern = ] 'user' ] [ , [ @LoginName = ] 'login' ] [ , [ @Password = ] 'password' ]
다음 명령으로 로그인 계정에 연결되지 않은 사용자를 조회할 수 있다 :
sp_change_users_login 구문
sp_change_users_login [ @Action = ] 'action' [ , [ @UserNamePattern = ] 'user' ] [ , [ @LoginName = ] 'login' ] [ , [ @Password = ] 'password' ]
다음 명령으로 로그인 계정에 연결되지 않은 사용자를 조회할 수 있다 :
EXEC sp_change_users_login 'test';또한 다음 명령으로 로그인 계정에 연결되지 않은 사용자를 사용자를 위한 로그인 계정을 생성하고 할당할 수 있다 :
USE AdventureWorks;
GO
EXEC sp_change_users_login 'Auto_Fix', 'username', NULL, 'passowrd';
GO