Microsoft SQL Server를 AWS SCT에 대한 소스로 사용 - AWS Schema Conversion Tool

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Microsoft SQL Server를 AWS SCT에 대한 소스로 사용

AWS SCT를 사용하여 스키마, 데이터베이스 코드 객체 및 애플리케이션 코드를 SQL Server에서 다음 대상으로 변환할 수 있습니다.

  • Amazon RDS for MySQL

  • Amazon Aurora MySQL-Compatible Edition

  • Amazon RDS for PostgreSQL

  • Amazon Aurora PostgreSQL-Compatible Edition

  • Amazon RDS for SQL Server

  • Amazon RDS for MariaDB

참고

AWS SCT에서는 Amazon RDS for SQL Server를 소스로 사용하는 기능이 지원되지 않습니다.

AWS SCT를 사용하면 다음 설명과 같이 SQL Server에서 Babelfish for Aurora PostgreSQL로 스키마, 데이터베이스 코드 객체 및 애플리케이션 코드를 마이그레이션하기 위한 평가 보고서를 생성할 수 있습니다.

Microsoft SQL Server를 소스로 사용하기 위한 권한

Microsoft SQL Server를 소스로 사용하기 위해 필요한 권한은 다음과 같습니다.

  • VIEW DEFINITION

  • VIEW DATABASE STATE

VIEW DEFINITION 권한을 사용하면 퍼블릭 액세스 권한을 가진 사용자가 객체 정의를 볼 수 있습니다. AWS SCT는 VIEW DATABASE STATE 권한을 사용하여 SQL Server Enterprise 버전의 기능을 확인합니다.

변환하려는 스키마의 각 데이터베이스에 대해 권한 부여를 반복합니다.

또한 master 데이터베이스에 다음 권한을 부여합니다.

  • VIEW SERVER STATE

  • VIEW ANY DEFINITION

AWS SCT는 VIEW SERVER STATE 권한을 사용하여 서버 설정 및 구성을 수집합니다. 엔드포인트를 보려면 VIEW ANY DEFINITION 권한을 부여해야 합니다.

Microsoft Analysis Services에 관한 정보를 읽으려면 master 데이터베이스에서 다음 명령을 실행합니다.

EXEC master..sp_addsrvrolemember @loginame = N'<user_name>', @rolename = N'sysadmin'

이전 예제에서 <user_name> 자리 표시자를 이전에 권한을 부여한 사용자의 이름으로 바꿉니다.

SQL Server 에이전트에 관한 정보를 읽으려면 사용자를 SQLAgentUser 역할에 추가합니다. msdb 데이터베이스에서 다음 명령을 실행합니다.

EXEC sp_addrolemember <SQLAgentRole>, <user_name>;

앞의 예제에서 <SQLAgentRole> 자리 표시자를 SQL Server 에이전트 역할의 이름으로 바꿉니다. 그런 다음, <user_name> 자리 표시자를 이전에 권한을 부여한 사용자의 이름으로 바꿉니다. 자세한 내용은 Amazon RDS 사용 설명서SQLAgentUser 역할에 사용자 추가를 참조하세요.

로그 전달을 감지하려면 msdb 데이터베이스에 대한 SELECT on dbo.log_shipping_primary_databases 권한을 부여합니다.

DDL 복제의 알림 방식을 사용하려면 소스 데이터베이스에 대해 RECEIVE ON <schema_name>.<queue_name> 권한을 부여합니다. 이 예제에서는 <schema_name> 자리 표시자를 데이터베이스의 스키마 이름으로 바꿉니다. 그런 다음, <queue_name> 자리 표시자를 대기열 테이블 이름으로 바꿉니다.

Microsoft SQL Server를 소스로 사용할 때 Windows 인증 사용

Windows 기반 인트라넷에서 애플리케이션을 실행하는 경우 데이터베이스 액세스에 Windows 인증을 사용할 수 있습니다. Windows 인증은 운영 체제 스레드에 설정된 현재 Windows ID를 사용하여 SQL Server 데이터베이스에 액세스합니다. 그런 다음 Windows ID를 SQL Server 데이터베이스 및 권한에 매핑할 수 있습니다. Windows 인증을 사용하여 SQL Server에 연결하려면 애플리케이션에서 사용하는 Windows ID를 지정해야 합니다. 또한 SQL Server 데이터베이스에 대한 Windows ID 액세스 권한을 부여해야 합니다.

SQL Server에는 Windows 인증 모드와 혼합 모드의 두 가지 액세스 모드가 있습니다. Windows 인증 모드에서는 Windows 인증을 활성화하고 SQL Server 인증을 비활성화합니다. 혼합 모드에서는 Windows 인증과 SQL Server 인증을 모두 사용할 수 있습니다. Windows 인증은 항상 사용할 수 있으며 비활성화할 수 없습니다. Windows 인증에 대한 자세한 내용은 Microsoft Windows 설명서를 참조하세요.

다음은 TEST_DB에 사용자를 생성하는 것을 보여주는 예입니다.

USE [TEST_DB] CREATE USER [TestUser] FOR LOGIN [TestDomain\TestUser] GRANT VIEW DEFINITION TO [TestUser] GRANT VIEW DATABASE STATE TO [TestUser]

JDBC 연결에서 Windows 인증 사용

JDBC 드라이버는 Windows 이외의 운영 체제에서 사용되는 경우 Windows 인증을 지원하지 않습니다. Windows 이외의 운영 체제에서 SQL Server에 연결할 때는 사용자 이름 및 암호와 같은 Windows 인증 보안 인증 정보가 자동으로 지정되지 않습니다. 이 경우 애플리케이션은 SQL Server 인증을 대신 사용해야 합니다.

JDBC 연결 문자열에서 Windows 인증을 사용하여 연결하려면 integratedSecurity 파라미터를 지정해야 합니다. JDBC 드라이버는 integratedSecurity 연결 문자열 파라미터를 통해 Windows 운영 체제에서 Windows 통합 인증을 지원합니다.

통합 인증을 사용하려면

  1. JDBC 드라이버를 설치합니다.

  2. JDBC 드라이버가 설치된 컴퓨터의 Windows 시스템 경로에 있는 디렉터리에 sqljdbc_auth.dll 파일을 복사합니다.

    sqljdbc_auth.dll 파일은 다음 위치에 설치됩니다.

    <installation directory>\sqljdbc_<version>\<language>\auth\

Windows 인증을 사용하여 SQL Server 데이터베이스에 연결을 시도하는 경우 "이 드라이버는 통합 인증에 맞게 구성되지 않았습니다"라는 오류가 발생할 수 있습니다. 이 문제는 다음 작업을 수행하여 해결할 수 있습니다.

  • 다음과 같이 JDBC 설치 경로를 가리키는 두 가지 변수를 선언합니다.

    variable name: SQLJDBC_HOME; variable value: D:\lib\JDBC4.1\enu(sqljdbc4.jar이 있는 위치);

    variable name: SQLJDBC_AUTH_HOME; variable value: D\lib\JDBC4.1\enu\auth\x86(32비트 OS를 실행하는 경우) 또는 D\lib\JDBC4.1\enu\auth\x64(64비트 OS를 실행하는 경우). sqljdbc_auth.dll이 있는 위치입니다.

  • JDK/JRE가 실행 중인 폴더에 sqljdbc_auth.dll을 복사합니다. lib 폴더, bin 폴더 등에 복사할 수 있습니다. 예를 들어 다음 폴더에 복사할 수 있습니다.

    [JDK_INSTALLED_PATH]\bin; [JDK_INSTALLED_PATH]\jre\bin; [JDK_INSTALLED_PATH]\jre\lib; [JDK_INSTALLED_PATH]\lib;
  • JDBC 라이브러리 폴더에는 SQLJDBC4.jar 파일만 있어야 합니다. 이 폴더에서 다른 sqljdbc*.jar 파일을 모두 제거(또는 다른 폴더로 복사)합니다. 드라이버를 프로그램의 일부로 추가하는 경우 사용할 드라이버로 SQLJDBC4.jar만 추가해야 합니다.

  • 애플리케이션의 해당 폴더에 sqljdbc_auth.dll 파일을 복사합니다.

참고

32비트 Java Virtual Machine(JVM)을 실행 중인 경우 x86 폴더에 있는 sqljdbc_auth.dll 파일을 사용합니다. 이는 운영 체제가 x64 버전인 경우에도 마찬가지입니다. x64 프로세서에서 64비트 JVM을 실행하는 경우에 x64 폴더의 sqljdbc_auth.dll 파일을 사용합니다.

SQL Server 데이터베이스에 연결할 때 인증 옵션으로 Windows 인증 또는 SQL Server 인증을 선택할 수 있습니다.

SQL Server에 소스 연결

다음 절차에 따라 AWS Schema Conversion Tool을 사용하여 Microsoft SQL Server 소스 데이터베이스에 연결합니다.

Microsoft SQL Server 소스 데이터베이스에 연결하려면
  1. AWS Schema Conversion Tool에서 소스 추가를 선택합니다.

  2. Microsoft SQL Server를 선택한 후 다음을 선택합니다.

    소스 추가 대화 상자가 나타납니다.

  3. 연결 이름에 데이터베이스의 이름을 입력합니다. AWS SCT는 왼쪽 패널의 트리에 이 이름을 표시합니다.

  4. AWS Secrets Manager의 데이터베이스 보안 인증 정보를 사용하거나 수동으로 입력합니다.

    • Secrets Manager의 데이터베이스 보안 인증 정보를 사용하려면 다음 지침을 따릅니다.

      1. AWS Secret에서 보안 암호의 이름을 선택합니다.

      2. Populate를 선택하여 Secrets Manager에서 데이터베이스 연결 대화 상자에 있는 모든 값을 자동으로 채웁니다.

      Secrets Manager의 데이터베이스 보안 인증 사용에 대한 자세한 내용은 AWS Secrets Manager 사용 섹션을 참조하세요.

    • Microsoft SQL Server 소스 데이터베이스 연결 정보를 수동으로 입력하려면 다음 지침을 사용합니다.

      파라미터 작업
      [Server name]

      소스 데이터베이스 서버의 DNS(Domain Name Service) 이름 또는 IP 주소를 입력합니다.

      IPv6 주소 프로토콜을 사용하여 소스 SQL Server 데이터베이스에 연결할 수 있습니다. 이렇게 하려면 다음 예제와 같이 대괄호를 사용하여 IP 주소를 입력해야 합니다.

      [2001:db8:ffff:ffff:ffff:ffff:ffff:fffe]
      [Server port]

      소스 데이터베이스 서버에 연결하는 데 사용되는 포트를 입력합니다.

      인스턴스 이름

      SQL Server 데이터베이스의 인스턴스 이름을 입력합니다. 인스턴스 이름을 찾으려면 SQL Server 데이터베이스에서 쿼리 SELECT @@servername;을 실행합니다.

      인증

      Windows 인증SQL Server 인증에서 인증 유형을 선택합니다.

      User namePassword

      소스 데이터베이스 서버에 연결하는 데 필요한 데이터베이스 보안 인증 정보를 입력합니다.

      프로젝트에서 데이터베이스에 연결하도록 선택한 경우에만 AWS SCT에서 암호를 사용하여 소스 데이터베이스에 연결합니다. 소스 데이터베이스의 암호가 노출될 위험을 방지하기 위해 AWS SCT는 기본적으로 암호를 저장하지 않습니다. AWS SCT 프로젝트를 닫았다 다시 열 경우 필요에 따라 소스 데이터베이스에 연결하기 위한 암호를 입력하라는 메시지가 표시됩니다.

      Use SSL(SSL 사용)

      SSL(Secure Sockets Layer)을 사용하여 데이터베이스에 연결하려면 이 옵션을 선택합니다. SSL 탭에서 다음 추가 정보를 적절히 제공합니다.

      • Trust server certificate: 서버 인증서를 신뢰하려면 이 옵션을 선택합니다.

      • 트러스트 스토어: 인증서가 있는 트러스트 스토어의 위치입니다. 이 위치가 전역 설정 섹션에 표시되도록 하려면 해당 위치를 추가해야 합니다.

      Store password

      AWS SCT는 SSL 인증서와 데이터베이스 암호를 저장할 안전한 볼트를 생성합니다. 이 옵션을 활성화하면 데이터베이스 암호를 저장하고 암호 입력 없이 빠르게 데이터베이스에 연결할 수 있습니다.

      Sql Server Driver Path

      소스 데이터베이스에 연결할 때 사용할 드라이버의 경로를 입력합니다. 자세한 내용은 필수 데이터베이스 드라이버 다운로드 섹션을 참조하세요.

      드라이버 경로를 전역 프로젝트 설정에 저장할 경우 드라이버 경로가 연결 대화 상자에 표시되지 않습니다. 자세한 내용은 전역 설정에 드라이버 경로 저장 섹션을 참조하세요.

      Windows Authentication library

      sqljdbc_auth.dll 파일의 경로를 입력합니다. 기본적으로 이 파일은 다음 위치에 설치됩니다.

      <installation directory of the JDBC driver>sqljdbc_<version>\<language>\auth\

  5. Test Connection을 선택하여 AWS SCT가 소스 데이터베이스에 연결할 수 있는지 확인합니다.

  6. 연결을 선택하여 소스 데이터베이스에 연결합니다.