작동버젼 : MSSQL 2000 및 2005 이상
사용방법 : "[]"안의 내용 변경 후 사용
주의사항 : 이름 확인
설 명 : 다른서버에서 데이터 베이스 복원 시 디비의 유저와 서버의 로그인 사이에 SPID가 맞지 않아서
로그인이 되지 않을 수 있는데 에초에 로그인 생성 시 SPID를 지정하여 생성하거나
다음과 같은 방법으로 해결 할 수 있음
MSSQL 2000의 경우
use [데이터 베이스명]; GO EXECUTE sp_change_users_login 'Auto_Fix','[로그인명]'; GO
MSSQL 2005 이상의 경우
USE [데이터 베이스명]; GO ALTER USER [유저명]WITH LOGIN = [로그인명]; GO
MSSQL 2005 이상 모든 디비, 모든 유저에 적용
DECLARE @Query nvarchar(4000);
DECLARE QueryCursor CURSOR FOR
SELECT 'ALTER USER ' + a.name + ' WITH LOGIN = ' + b.name AS Query
FROM sys.database_principals AS a WITH(NOLOCK)
INNER JOIN sys.sql_logins AS b WITH(NOLOCK) ON a.name = b.name
WHERE a.type IN ('S', 'U')
AND b.type IN ('S', 'U');
OPEN QueryCursor;
FETCH QueryCursor INTO @Query;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @Query;
EXECUTE sp_executesql @Query;
FETCH QueryCursor INTO @Query;
END;
CLOSE QueryCursor;
DEALLOCATE QueryCursor;
GO
'프로그래밍 > MSSQL\스크립트' 카테고리의 다른 글
| [MSSQL] PK가 없는 테이블 정리 (1차 정규화 위반) (0) | 2012.05.01 |
|---|---|
| [MSSQL] 특정 계정으로 로그인된 모든 세션 Kill (0) | 2012.04.29 |
| [MSSQL] IP String <-> IP Binary (0) | 2012.04.24 |
| [MSSQL] DB의 모든 테이블의 Collation 변경 (0) | 2012.04.24 |
| [MSSQL] CSV 파일을 임시 테이블에 저장 (0) | 2012.04.24 |