'에러'에 해당되는 글 1건

  1. 2012.04.30 [MSSQL] 로그인과 유저 간의 연결 수정

작동버젼 : 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


Posted by Mr.Jo :