

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

# 를 사용하여 SAP 데이터베이스에 연결 AWS Schema Conversion Tool
<a name="CHAP_Source.SAP"></a>

 AWS SCT 를 사용하여 SAP(Sybase) Adaptive Server Enterprise(ASE)의 스키마, 데이터베이스 코드 객체 및 애플리케이션 코드를 다음 대상으로 변환할 수 있습니다.
+ Amazon RDS for MySQL
+ Amazon Aurora MySQL 호환 버전
+ Amazon RDS for MariaDB
+ Amazon RDS for PostgreSQL
+ Amazon Aurora PostgreSQL 호환 에디션

자세한 내용은 다음 단원을 참조하세요.

**Topics**
+ [SAP ASE를 소스 데이터베이스로 사용할 수 있는 권한](#CHAP_Source.SAP.Permissions)
+ [SAP ASE(Sybase) 소스에 연결](#CHAP_Source.SAP.Connecting)
+ [MySQL을 대상 데이터베이스로 사용하기 위한 권한](#CHAP_Source.SAP.ConfigureMySQL)
+ [SAP ASE에서 MySQL로 변환 설정](#CHAP_Source.SAP.MySQLConversionSettings)
+ [PostgreSQL을 대상 데이터베이스로 사용하기 위한 권한](#CHAP_Source.SAP.ConfigurePostgreSQL)
+ [SAP ASE에서 PostgreSQL로 변환 설정](#CHAP_Source.SAP.PostgreSQLConversionSettings)

## SAP ASE를 소스 데이터베이스로 사용할 수 있는 권한
<a name="CHAP_Source.SAP.Permissions"></a>

SAP ASE 데이터베이스를 소스로 사용하려면 데이터베이스 사용자를 생성하고 권한을 부여해야 합니다. 이 작업을 수행하려면 다음 단계를 수행합니다.

**데이터베이스 사용자 생성 및 구성**

1. 소스 데이터베이스에 연결합니다.

1. 다음 명령을 사용하여 데이터베이스 사용자를 생성합니다. 새 사용자의 암호를 입력합니다.

   ```
   USE master
   CREATE LOGIN min_privs WITH PASSWORD <password>
   sp_adduser min_privs
   grant select on dbo.spt_values to min_privs
   grant select on asehostname to min_privs
   ```

1. 마이그레이션하려는 모든 데이터베이스에 대해 다음 권한을 부여합니다.

   ```
   USE <database_name>
   sp_adduser min_privs
   grant select on dbo.sysusers to min_privs
   grant select on dbo.sysobjects to min_privs
   grant select on dbo.sysindexes to min_privs
   grant select on dbo.syscolumns to min_privs
   grant select on dbo.sysreferences to min_privs
   grant select on dbo.syscomments to min_privs
   grant select on dbo.syspartitions to min_privs
   grant select on dbo.syspartitionkeys to min_privs
   grant select on dbo.sysconstraints to min_privs
   grant select on dbo.systypes to min_privs
   grant select on dbo.sysqueryplans to min_privs
   ```

## SAP ASE(Sybase) 소스에 연결
<a name="CHAP_Source.SAP.Connecting"></a>

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

**SAP ASE 소스 데이터베이스에 연결하려면**

1. 에서 **소스 추가**를 AWS Schema Conversion Tool선택합니다.

1. **SAP ASE**를 선택하고 **다음**을 선택합니다.

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

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

1. 에서 데이터베이스 자격 증명을 사용하거나 수동으로 AWS Secrets Manager 입력합니다.
   + Secrets Manager의 데이터베이스 보안 인증 정보를 사용하려면 다음 지침을 따릅니다.

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

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

     Secrets Manager의 데이터베이스 보안 인증 사용에 대한 자세한 내용은 [AWS Secrets Manager 에서 구성 AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md) 섹션을 참조하세요.
   + SAP ASE 소스 데이터베이스 연결 정보를 수동으로 입력하려면 다음 지침을 사용합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/SchemaConversionTool/latest/userguide/CHAP_Source.SAP.html)

1. **연결 테스트를** 선택하여가 소스 데이터베이스에 연결할 AWS SCT 수 있는지 확인합니다.

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

## MySQL을 대상 데이터베이스로 사용하기 위한 권한
<a name="CHAP_Source.SAP.ConfigureMySQL"></a>

MySQL을 대상으로 사용하기 위해 필요한 권한은 다음과 같습니다.
+ CREATE ON \$1.\$1
+ ALTER ON \$1.\$1
+ DROP ON \$1.\$1
+ INDEX ON \$1.\$1
+ REFERENCES ON \$1.\$1
+ SELECT ON \$1.\$1
+ CREATE VIEW ON \$1.\$1
+ SHOW VIEW ON \$1.\$1
+ TRIGGER ON \$1.\$1
+ CREATE ROUTINE ON \$1.\$1
+ ALTER ROUTINE ON \$1.\$1
+ EXECUTE ON \$1.\$1
+ INSERT, UPDATE ON AWS\$1SAPASE\$1EXT.\$1
+ CREATE TEMPORARY TABLES ON AWS\$1SAPASE\$1EXT.\$1

다음 코드 예제를 사용하여 데이터베이스 사용자를 생성하고 권한을 부여할 수 있습니다.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_SAPASE_EXT.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_SAPASE_EXT.* TO 'user_name';
```

이전 예제에서 *user\$1name*을 사용자 이름으로 바꿉니다. 그런 다음 *your\$1password*를 안전한 암호로 바꿉니다.

Amazon RDS for MySQL 또는 Amazon RDS for Aurora MySQL을 대상으로 사용하려면 `lower_case_table_names` 파라미터를 `1`로 설정합니다. 이 값은 MySQL 서버가 테이블, 인덱스, 트리거 및 데이터베이스와 같은 객체 이름의 식별자를 대소문자 구분 없이 처리한다는 것을 의미합니다. 대상 인스턴스에서 이진 로깅을 활성화했다면 `log_bin_trust_function_creators` 파라미터를 `1`로 설정합니다. 이 경우 저장된 함수를 생성하기 위해 `DETERMINISTIC`, `READS SQL DATA` 또는 `NO SQL` 특성을 사용할 필요가 없습니다. 이들 파라미터를 구성하려면 새 DB 파라미터 그룹을 생성하거나 기존 DB 파라미터 그룹을 수정해야 합니다.

## SAP ASE에서 MySQL로 변환 설정
<a name="CHAP_Source.SAP.MySQLConversionSettings"></a>

SAP ASE에서 MySQL로의 변환 설정을 편집하려면 **설정**을 선택한 다음 **변환 설정**을 선택합니다. 상단 목록에서 **SAP ASE**를 선택한 다음 **SAP ASE – MySQL** 또는 **SAP ASE – Amazon Aurora (MySQL compatible)**를 선택합니다. AWS SCT 는 SAP ASE에서 PostgreSQL로의 변환에 사용할 수 있는 모든 설정을 표시합니다.

의 SAP ASE에서 MySQL로의 변환 설정에는 다음에 대한 옵션이 AWS SCT 포함됩니다.
+ 변환된 코드에서 작업 항목이 포함된 설명의 수를 제한합니다.

  **선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석 추가에서** 작업 항목의 심각도를 선택합니다.는 선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석을 AWS SCT 추가합니다.

  예를 들어, 변환된 코드의 설명 수를 최소화하려면 **오류만**을 선택하세요. 변환된 코드의 모든 작업 항목에 대한 설명을 포함하려면 **모든 메시지**를 선택합니다.
+ 변환된 코드에서 소스 데이터베이스 객체의 정확한 이름을 사용합니다.

  기본적으로는 데이터베이스 객체, 변수 및 파라미터의 이름을 소문자로 AWS SCT 변환합니다. 이러한 이름에서 원래의 대/소문자를 유지하려면 **Treat source database object names as case sensitive**를 선택합니다. 소스 SAP ASE 데이터베이스 서버에서 대소문자를 구분한 객체 이름을 사용하는 경우 이 옵션을 선택합니다.

## PostgreSQL을 대상 데이터베이스로 사용하기 위한 권한
<a name="CHAP_Source.SAP.ConfigurePostgreSQL"></a>

PostgreSQL을 대상으로 사용하려면 `CREATE ON DATABASE`에 권한이 AWS SCT 필요합니다. 각 대상 PostgreSQL 데이터베이스에 대해 이 권한을 부여해야 합니다.

변환된 공개 동의어를 사용하려면 데이터베이스 기본 검색 경로를 `"$user", public_synonyms, public`으로 변경합니다.

다음 코드 예제를 사용하여 데이터베이스 사용자를 생성하고 권한을 부여할 수 있습니다.

```
CREATE ROLE user_name LOGIN PASSWORD 'your_password';
GRANT CREATE ON DATABASE db_name TO user_name;
ALTER DATABASE db_name SET SEARCH_PATH = "$user", public_synonyms, public;
```

이전 예제에서 *user\$1name*을 사용자 이름으로 바꿉니다. 그런 다음 *db\$1name*을 대상 데이터베이스의 이름으로 바꿉니다. 마지막으로 *your\$1password*를 안전한 암호로 바꿉니다.

PostgreSQL에서는 스키마 소유자 또는 `superuser`만 스키마를 삭제할 수 있습니다. 소유자는 스키마 소유자가 일부 객체를 소유하지 않은 경우에도 스키마 및 이 스키마에 포함된 모든 객체를 삭제할 수 있습니다.

다른 사용자를 사용하여 대상 데이터베이스에 다른 스키마를 변환하고 적용하는 경우에서 스키마를 삭제할 수 없는 경우 오류 메시지가 표시될 AWS SCT 수 있습니다. 이 오류 메시지가 표시되지 않도록 하려면 `superuser` 역할을 사용하세요.

## SAP ASE에서 PostgreSQL로 변환 설정
<a name="CHAP_Source.SAP.PostgreSQLConversionSettings"></a>

SAP ASE에서 PostgreSQL로의 변환 설정을 편집하려면 **설정**을 선택한 다음 **변환 설정**을 선택합니다. 상단 목록에서 **SAP ASE**를 선택한 다음 **SAP ASE – PostgreSQL** 또는 **SAP ASE – Amazon Aurora (PostgreSQL compatible)**를 선택합니다. AWS SCT 는 SAP ASE에서 PostgreSQL로의 변환에 사용할 수 있는 모든 설정을 표시합니다.

의 SAP ASE에서 PostgreSQL로의 변환 설정에는 다음에 대한 옵션이 AWS SCT 포함됩니다.
+ 변환된 코드에서 작업 항목이 포함된 설명의 수를 제한합니다.

  **선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석 추가에서** 작업 항목의 심각도를 선택합니다.는 선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석을 AWS SCT 추가합니다.

  예를 들어, 변환된 코드의 설명 수를 최소화하려면 **오류만**을 선택하세요. 변환된 코드의 모든 작업 항목에 대한 설명을 포함하려면 **모든 메시지**를 선택합니다.
+ 변환된 코드의 스키마 이름에 사용할 템플릿을 정의합니다. **Schema name generation template**에서 다음 옵션 중 하나를 선택합니다.
  + **<source\$1db>** – PostgreSQL에서 SAP ASE 데이터베이스 이름을 스키마 이름으로 사용합니다.
  + **<source\$1schema>** – PostgreSQL에서 SAP ASE 스키마 이름을 스키마 이름으로 사용합니다.
  + **<source\$1db>\$1<schema>** – PostgreSQL에서 SAP ASE 데이터베이스와 스키마 이름의 조합을 스키마 이름으로 사용합니다.
+ 변환된 코드에서 소스 데이터베이스 객체의 정확한 이름을 사용합니다.

  기본적으로는 데이터베이스 객체, 변수 및 파라미터의 이름을 소문자로 AWS SCT 변환합니다. 이러한 이름에서 원래의 대/소문자를 유지하려면 **Treat source database object names as case sensitive**를 선택합니다. 소스 SAP ASE 데이터베이스 서버에서 대소문자를 구분한 객체 이름을 사용하는 경우 이 옵션을 선택합니다.

  대소문자를 구분하는 작업의 경우 데이터베이스 객체 이름을 소문자로 변환하지 않아도 AWS SCT 됩니다. 이렇게 하려면 **Avoid casting to lowercase for case sensitive operations**를 선택합니다.
+ SAP ASE의 여러 테이블에서 이름이 같은 인덱스를 사용할 수 있도록 합니다.

  PostgreSQL에서는 스키마에서 사용하는 모든 인덱스 이름이 고유해야 합니다. 가 모든 인덱스에 대해 고유한 이름을 AWS SCT 생성하도록 하려면 **인덱스에 대해 고유한 이름 생성을** 선택합니다.