MS-SQL 2000에서 2005 사용자 정보 전송

새 서버로 데이터베이스를 이동한 후 사용자가 새 서버에서 로그인하지 못할 수 있으며 다음과 같은 오류 메시지가 나타납니다.



메시지 18456, 수준 16, 상태 1
‘%ls’ 사용자가 로그인하지 못했습니다. 
새 서버로 로그인과 암호를 전송해야 합니다. 이 문서에서는 새 서버로 로그인과 암호를 전송하는 방법을 설명합니다.

SQL Server 7.0을 실행하는 서버 간에 로그인 및 암호를 전송하는 방법

SQL Server 7.0 DTS(데이터 변환 서비스) 개체 전송 기능을 사용하면 두 서버 간에 로그인 및 사용자를 전송할 수 있지만 SQL Server의 인증된 로그인에 대한 암호는 전송할 수 없습니다. SQL Server 7.0을 실행하는 한 서버에서 SQL Server 7.0을 실행하는 다른 서버로 로그인과 암호를 전송하려면 “서로 다른 버전의 SQL Server 간에 로그인 및 암호를 전송하는 방법” 절에 나와 있는 단계를 수행하십시오.

SQL Server 7.0에서 SQL Server 2000으로 또는 SQL Server 2000을 실행하는 서버 간에 로그인 및 암호를 전송하는 방법

SQL Server 7.0 서버에서 SQL Server 2000 인스턴스로 또는 두 SQL Server 2000 인스턴스 간에 로그인과 암호를 전송하려면 SQL Server 2000에서 새로운 DTS 패키지 로그인 전송 작업을 사용하면 됩니다. 이렇게 하려면 다음과 같이 하십시오.

  1. SQL Server 2000 대상 서버에 연결하여 SQL Server 엔터프라이즈 관리자에서 데이터 변환 서비스로 이동하고 폴더를 확장한 다음 로컬 패키지를 마우스 오른쪽 단추로 누르고 새 패키지를 누릅니다.

  2. DTS 패키지 디자이너가 열리면 작업 메뉴에서 로그인 전송 작업을 누릅니다. 원본,대상  로그인 탭에 대한 정보를 적절하게 완성합니다. 

    중요 SQL Server 2000 대상 서버에서는 64비트 버전의 SQL Server 2000을 실행할 수 없습니다. 64비트 버전의 SQL Server 2000용 DTS 구성 요소를 사용할 수 없습니다. 다른 컴퓨터에 있는 SQL Server 인스턴스에서 로그인을 가져오는 경우 이 작업을 완료하려면 사용자 컴퓨터에 있는 SQL Server 인스턴스가 도메인 계정에서 실행되어야 합니다. 

    참고 DTS 방법을 사용하면 암호를 전송할 수 있지만 원본 SID는 전송할 수 없습니다. 로그인이 원본 SID를 사용하여 만들어지지 않은 경우 사용자 데이터베이스도 새 서버로 전송되면 데이터베이스 사용자가 로그인에서 분리됩니다. 원본 SID를 전송하고 분리된 사용자를 방지하려면 “서로 다른 버전의 SQL Server 간에 로그인 및 암호를 전송하는 방법” 절에 나와 있는 단계를 수행하십시오.


SQL Server 2005 인스턴스 간에 로그인 및 암호를 전송하는 방법

SQL Server 2005 인스턴스 간에 로그인 및 암호를 전송하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
918992  SQL Server 2005 인스턴스 간에 로그인 및 암호를 전송하는 방법


서로 다른 버전의 SQL Server 간에 로그인 및 암호를 전송하는 방법

이렇게 하려면 다음 방법 중 하나를 사용하십시오.
참고

  • 다음 방법의 스크립트에서는 sp_hexadecimal  sp_help_revlogin이라는 두 가지 저장 프로시저를 master 데이터베이스에 만듭니다.

  • 스크립트는 SQL Server 시스템 테이블에 종속되어 있습니다. 이러한 테이블의 구조는 SQL Server 버전에 따라 변경될 수 있으므로 시스템 테이블에서 직접 선택하지 않는 것이 좋습니다.

  • 방법의 단계에 대한 중요한 정보는 이 문서의 끝에 나오는 비고를 참조하십시오.

  • 방법 2에서는 역할에 로그인을 할당합니다.


방법 1

이 방법은 다음과 같은 경우에 적용됩니다.

  • SQL Server 7.0에서 SQL Server 7.0으로 로그인 및 암호를 전송하는 경우

  • SQL Server 7.0에서 SQL Server 2000으로 로그인 및 암호를 전송하는 경우

  • SQL Server 2000을 실행하는 서버 간에 로그인 및 암호를 전송하는 경우
서로 다른 버전의 SQL Server 간에 로그인 및 암호를 전송하려면 다음과 같이 하십시오.

  1. 원본 SQL Server에서 다음 스크립트를 실행합니다. sp_help_revlogin 저장 프로시저를 만든 후에는 2단계를 계속 수행하십시오.


  2. sp_help_revlogin 저장 프로시저를 만든 다음 원본 서버의 쿼리 분석기에서sp_help_revlogin 프로시저를 실행합니다. sp_help_revlogin 저장 프로시저는 SQL Server 7.0과 SQL Server 2000에서 모두 사용할 수 있습니다.sp_help_revlogin 저장 프로시저의 출력은 원본 SID와 암호를 사용하여 로그인을 만드는 로그인 스크립트입니다. 출력을 저장한 다음 대상 SQL Server의 쿼리 분석기에 붙여 넣고 실행하십시오. 예를 들면 다음과 같습니다.



방법 2

이 방법은 다음과 같은 경우에 적용됩니다.

  • SQL Server 7.0에서 SQL Server 2005로 로그인 및 암호를 전송하는 경우

  • SQL Server 2000에서 SQL Server 2005로 로그인 및 암호를 전송하는 경우

  • 역할에 로그인을 할당하는 경우
서로 다른 버전의 SQL Server 간에 로그인 및 암호를 전송한 다음 역할에 로그인을 할당하려면 다음과 같이 하십시오.

  1. 원본 SQL Server에서 다음 스크립트를 실행합니다.


  2. 출력을 저장한 다음 대상 SQL Server 2005의 SQL Server Management Studio에 붙여 넣고 실행합니다.
참고 원본 SQL Server에 암호가 비어 있는 로그인이 포함되어 있으면 출력에 다음과 유사한 문이 들어 있습니다.



비고



  • 대상 SQL Server에서 실행하기 전에 출력 스크립트를 신중하게 검토하십시오. 원본 SQL Server 인스턴스와 다른 도메인에 있는 SQL Server 인스턴스로 로그인을 전송해야 하면 sp_help_revlogin 프로시저에서 생성한 스크립트를 편집하여sp_grantlogin 문에서 도메인 이름을 새 도메인으로 바꾸십시오. 새 도메인에 있는 액세스 권한이 부여된 통합 로그인의 SID가 원본 도메인에 있는 로그인의 SID와 같지 않기 때문에 데이터베이스 사용자가 이러한 로그인에서 분리됩니다. 이러한 분리된 사용자 문제를 해결하려면 다음 단락에 나오는 문서를 참조하십시오. 같은 도메인에 있는 SQL Server 인스턴스 간에 통합 로그인을 전송하면 같은 SID가 사용되므로 사용자가 분리될 가능성이 거의 없습니다.

  • 로그인을 이동한 후 사용자는 이동된 데이터베이스에 액세스할 권한이 없을 수 있습니다. 이 문제를 “분리된 사용자”라고 합니다. 데이터베이스에 로그인 액세스 권한을 부여하려고 하면 사용자가 이미 있다고 나타나면서 실패할 수 있습니다.


    Microsoft SQL-DMO (ODBC SQLState: 42000) 오류 15023: 현재 데이터베이스에 ‘%s’ 사용자 또는 역할이 이미 있습니다.
    데이터베이스 사용자에 로그인을 매핑하여 분리된 SQL Server 로그인과 통합 로그인 문제를 해결하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    240872  SQL Server를 실행하는 서버 사이에서 데이터베이스를 이동할 때 사용 권한 문제를 해결하는 방법
    sp_change_users_login 저장 프로시저를 사용하여 한 번에 하나씩 분리된 사용자 문제를 해결(표준 SQL 로그인에서 분리된 사용자 문제만 해결)하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    274188  PRB: 온라인 설명서의 “분리된 사용자 문제 해결” 항목이 불완전하다

  • 로그인과 암호의 전송이 SQL Server를 실행하는 새 서버로 데이터베이스를 이동하는 작업에 포함되는 경우 관련된 워크플로와 단계에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    314546  SQL Server를 실행하는 컴퓨터 간에 데이터베이스를 이동하는 방법

  • 암호화된 암호를 사용하여 로그인을 만들 수 있도록 하는 sp_addlogin 시스템 저장 프로시저의 @encryptopt 매개 변수 때문에 로그인과 암호를 전송할 수 있습니다. 이 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서에서 “sp_addlogin (T-SQL)” 항목을 참조하십시오.

  • 기본적으로 sysadminfixed 서버 역할의 구성원만 sysxlogins 테이블에서 선택할 수 있습니다. sysadmin 역할의 구성원이 필요한 권한을 부여하지 않으면 최종 사용자가 이러한 저장 프로시저를 만들거나 실행할 수 없습니다.

  • 이 방법에서는 기본 데이터베이스가 대상 서버에 없을 수도 있기 때문에 특정 로그인에 대한 기본 데이터베이스 정보를 전송하려고 하지 않습니다. 로그인에 대한 기본 데이터베이스를 정의하려면 로그인 이름과 기본 데이터베이스를 인수로 전달하여sp_defaultdb 시스템 저장 프로시저를 사용하면 됩니다. 이 프로시저의 사용 방법에 대한 자세한 내용은 SQL Server 온라인 설명서에서 “sp_defaultdb” 항목을 참조하십시오.

  • SQL Server 인스턴스 간에 로그인을 전송하는 동안 원본 서버의 정렬 순서가 대/소문자를 구분하지 않고 대상 서버의 정렬 순서가 대/소문자를 구분하면 대상 서버로 로그인을 전송한 후 암호의 알파벳 문자를 모두 대문자로 입력해야 합니다. 원본 서버의 정렬 순서가 대/소문자를 구분하고 대상 서버의 정렬 순서가 대/소문자를 구분하지 않으면 원본 암호에 알파벳 문자가 포함되어 있지 않은 경우나 원본 암호의 모든 알파벳 문자가 대문자인 경우가 아니면 이 문서에 나와 있는 절차에 따라 전송된 로그인을 사용하여 로그인할 수 없습니다. 두 서버가 모두 대/소문자를 구분하거나 모두 구분하지 않으면 이러한 문제가 발생하지 않습니다. 이것은 SQL Server에서 암호를 처리하는 방식에 따른 부작용입니다. 자세한 내용은 SQL Server 7.0 온라인 설명서에서 “Effect on Passwords of Changing Sort Orders(정렬 순서 변경이 암호에 주는 영향)” 항목을 참조하십시오.

  • 대상 서버에서 sp_help_revlogin 스크립트의 출력을 실행할 때 스크립트 출력에 있는 로그인 중 하나와 이름이 같은 로그인이 서버에 이미 정의되어 있으면sp_help_revlogin 스크립트의 출력을 실행할 때 다음과 같은 오류가 나타날 수 있습니다.


    서버: 메시지 15025, 수준 16, 상태 1, 프로시저 sp_addlogin, 줄 56
    ‘test1’ 로그인이 이미 있습니다.
    마찬가지로, 추가하려는 로그인과 SID 값이 동일한 다른 로그인이 해당 서버에 있으면 다음과 같은 오류 메시지가 나타납니다.


    서버: 메시지 15433, 수준 16, 상태 1, 프로시저 sp_addlogin, 줄 93
    제공한 매개 변수 @sid가 사용 중입니다.
    따라서 이러한 명령의 출력을 신중하게 검토하고 sysxlogins 테이블의 내용을 조사하여 이러한 오류를 적절하게 해결해야 합니다.

  • 특정 로그인의 SID 값은 SQL Server에서 데이터베이스 수준 액세스를 구현하기 위한 기본 요소로 사용됩니다. 따라서 동일한 로그인에 데이터베이스 수준(해당 서버에 있는 서로 다른 두 데이터베이스)에서 서로 다른 SID 값이 두 개 있으면 이 로그인은syslogins에 있는 해당 로그인의 SID 값과 일치하는 SID가 있는 데이터베이스에만 액세스할 수 있습니다. 이러한 상황은 두 데이터베이스가 서로 다른 두 서버에서 통합된 경우 발생할 수 있습니다. 이 문제를 해결하려면 sp_dropuser 저장 프로시저를 사용하여 SID가 일치하지 않는 데이터베이스에서 로그인을 수동으로 제거한 다음sp_adduser 저장 프로시저를 사용하여 다시 추가해야 합니다.


코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호