'로그인'에 해당되는 글 1건

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

작동버젼 : MSSQL 2000 및 2005 이상
사용방법 : "[]"안의 내용 변경 후 사용
주의사항 : 이름 확인
설      명 : 다른서버에서 데이터 베이스 복원 시 디비의 유저와 서버의 로그인 사이에 SPID가 맞지 않아서
              로그인이 되지 않을 수 있는데 에초에 로그인 생성 시 SPID를 지정하여 생성하거나
              다음과 같은 방법으로 해결 할 수 있음



MSSQL 2000의 경우

1
2
3
4
5
use [데이터 베이스명];
GO
 
EXECUTE sp_change_users_login 'Auto_Fix','[로그인명]';
GO


MSSQL 2005 이상의 경우

1
2
3
4
5
USE [데이터 베이스명];
GO
 
ALTER USER [유저명]WITH LOGIN = [로그인명];
GO

MSSQL 2005 이상 모든 디비, 모든 유저에 적용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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 :