AWS Schema Conversion Tool を使用した SAP データベースへの接続
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 互換エディション
詳細については、次のセクションを参照してください。
トピック
ソースデータベースとしての SAP ASE の特権
SAP ASE データベースをソースとして使用するには、データベースユーザーを作成して特権を付与します。これを行うには、以下のステップに従います。
データベースユーザーを作成して設定する
ソースデータベースに接続する。
次のコマンドを使用してデータベースユーザーを作成する。新しいユーザーのパスワードを入力する。
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移行するすべてのデータベースに対して、次の権限を付与する。
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) への接続
以下の手順を使用して、SAP ASE ソースデータベースを AWS Schema Conversion Tool に接続します。
SAP ASE ソースデータベースに接続するには
-
AWS Schema Conversion Tool で、[Add source] (ソースの追加) を選択します。
-
[SAP ASE] を選択し、その後 [Next] (次へ) を選択します。
[Add source] (ソースの追加) ダイアログボックスが表示されます。
-
[接続名] にデータベースの名前を入力します。この名前が AWS SCT の左側のパネルのツリーに表示されます。
-
AWS Secrets Manager からのデータベース認証情報を使用するか、手動で入力してください。
-
Secrets Manager のデータベース認証情報を使用するには、以下の手順に従ってください。
-
[AWS シークレット] で、シークレットの名前を選択します。
-
[入力] を選択すると、Secrets Manager のデータベース接続ダイアログボックスにすべての値が自動的に入力されます。
Secrets Manager のデータベース認証情報を使用する方法については、「AWS Schema Conversion Tool での AWS Secrets Manager の設定」を参照してください。
-
-
SAP ASE ソースデータベースの接続情報を手動で入力するには、次の手順に従います。
パラメータ アクション Server name] (サーバー名 ソースデータベースサーバーのドメインネームシステム (DNS) 名または IP アドレスを入力します。
[Server port] (サーバーポート): ソースデータベースサーバーへの接続に使用するポートを入力します。
データベース SAP ASE データベースの名前を入力します。
User name (ユーザー名) と [Password] (パスワード) データベース認証情報を入力して、ソースデータベースサーバーに接続します。
注記
AWS SCT でパスワードを使用して、プロジェクト内のデータベースに接続することを選択する場合にのみソースデータベースに接続します。ソースデータベースのパスワードの漏洩を防ぐため、デフォルトで AWS SCT にパスワードは保存されません。AWS SCT プロジェクトを閉じて再び開いた場合は、必要に応じて、ソースデータベースへの接続に使用するパスワードの入力を求められます。
SSL の使用 データベースへの接続に Secure Sockets Layer (SSL) を使用する場合は、このオプションを選択します。[SSL] タブで、必要に応じて、以下の追加情報を提供します。
-
[サーバー認証情報を確認する]: 信頼ストアを使用してサーバー証明書を確認するには、このオプションを選択します。
-
[信頼ストア]: 証明書を保存している信頼ストアの場所。
Store Password AWS SCT は、安全なボールトを作成して、SSL 証明書とデータベースパスワードを保存します。このオプションを有効にすると、データベースのパスワードが保存されるため、パスワードを入力しなくてもデータベースにすばやく接続できます。
SAP ASE ドライバーパス ソースデータベースへの接続に使用するドライバのパスを入力します。詳細については、「AWS Schema Conversion Tool 用の JDBC ドライバーのインストール」を参照してください。
ドライバパスをグローバルプロジェクト設定に保存する場合、ドライバパスは接続ダイアログボックスに表示されません。詳細については、「グローバル設定でのドライバパスの保存」を参照してください。
-
-
-
[Test Connection] (接続のテスト) を選択して、AWS SCT がソースデータベースに正常に接続できることを確認します。
-
[Connect] (接続) を選択して、ソースデータベースに接続します。
MySQL をターゲットデータベースとする場合の権限
ターゲットとして MySQL に必要な権限を以下に示します。
CREATE ON *.*
ALTER ON *.*
DROP ON *.*
INDEX ON *.*
REFERENCES ON *.*
SELECT ON *.*
CREATE VIEW ON *.*
SHOW VIEW ON *.*
TRIGGER ON *.*
CREATE ROUTINE ON *.*
ALTER ROUTINE ON *.*
EXECUTE ON *.*
INSERT, UPDATE ON AWS_SAPASE_EXT.*
CREATE TEMPORARY TABLES ON AWS_SAPASE_EXT.*
次のコード例を使用してデータベースユーザーを作成し、権限を付与できます。
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_name] をお客様の設定のユーザー名に置き換えます。次に、your_password を安全なパスワードに置き換えます。
Amazon RDS for MySQL または 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 への変換設定
SAP ASE から MySQL への変換設定を編集するには、[設定] を選択し、[変換設定] を選択します。上のリストから [SAP ASE] を選択し、次に [SAP ASE – MySQL] または [SAP ASE – Amazon Aurora (MySQL 互換)] を選択します。AWS SCT に、SAP ASE から PostgreSQL への変換に使用できるすべての設定が表示されます。
AWS SCT での SAP ASE から MySQL への変換設定には、以下のオプションが含まれています。
-
変換されたコード内のアクション項目に関するコメントの数を制限する。
[変換後のコードにコメントを追加] で、選択した重要度以上のアクションアイテムについて、アクションアイテムの重要度を選択します。AWS SCT は、選択した重要度以上のアクションアイテムについて、変換後のコードにコメントを追加します。
たとえば、変換したコード内のコメントの数を最小限に抑えるには、[エラーのみ] を選択します。変換したコードのすべてのアクション項目にコメントを含めるには、[すべてのメッセージ] を選択します。
-
変換後のコードでソースデータベースオブジェクトの正確な名前を使用する。
デフォルトでは、データベースオブジェクト、変数、AWS SCT パラメータの名前を小文字に変換します。これらの名前を元の大文字と小文字を区別しないでおくには、[ソースデータベースオブジェクト名の大文字と小文字を区別する] を選択します。ソース SAP ASE データベースサーバーで大文字と小文字を区別するオブジェクト名を使用する場合は、このオプションを選択してください。
ターゲットデータベースとしての PostgreSQL の権限
PostgreSQL をターゲットとして使用するには、AWS SCT で CREATE ON DATABASE 権限が必要です。ターゲット PostgreSQL データベースごとにこの権限を必ず付与してください。
変換されたパブリックシノニムを使用するには、データベースのデフォルト検索パスを "$user", public_synonyms, public に変更します。
次のコード例を使用してデータベースユーザーを作成し、権限を付与できます。
CREATE ROLEuser_nameLOGIN PASSWORD 'your_password'; GRANT CREATE ON DATABASEdb_nameTOuser_name; ALTER DATABASEdb_nameSET SEARCH_PATH = "$user", public_synonyms, public;
前述の例では、[user_name] をお客様の設定のユーザー名に置き換えます。[db_name] をターゲットデータベースの名前に置き換えます。最後に、[your_password] を安全なパスワードに置き換えます。
PostgreSQL では、スキーマの所有者または superuser だけがスキーマを削除できます。スキーマ所有者が一部のオブジェクトを所有していない場合でも、スキーマとスキーマに含まれるすべてのオブジェクトを削除できます。
異なるユーザーを使用して異なるスキーマを変換してターゲットデータベースに適用すると、AWS SCT で、スキーマを削除できないときにエラーメッセージが表示されることがあります。このエラーメッセージを回避するには、superuser ロールを使用してください。
SAP ASE から PostgreSQL への変換設定
SAP ASE から PostgreSQL への変換設定を編集するには、[設定] を選択し、次に [変換設定] を選択します。上のリストから [SAP ASE] を選択し、次に [SAP ASE – PostgreSQL] または [SAP ASE – Amazon Aurora (PostgreSQL 互換)] を選択します。AWS SCT に、SAP ASE から PostgreSQL への変換に使用できるすべての設定が表示されます。
AWS SCT の SAP ASE から PostgreSQL への変換設定には、以下のオプションが含まれています。
-
変換されたコード内のアクション項目に関するコメントの数を制限する。
[変換後のコードにコメントを追加] で、選択した重要度以上のアクションアイテムについて、アクションアイテムの重要度を選択します。AWS SCT は、選択した重要度以上のアクションアイテムについて、変換後のコードにコメントを追加します。
たとえば、変換したコード内のコメントの数を最小限に抑えるには、[エラーのみ] を選択します。変換したコードのすべてのアクション項目にコメントを含めるには、[すべてのメッセージ] を選択します。
-
変換されるコード内のスキーマ名に使用するテンプレートを定義する。[スキーマ名生成テンプレート] では、次のオプションのいずれかを選択します。
[<source_db>] – PostgreSQL のスキーマ名として SAP ASE データベース名を使用します。
[<source_schema>] – PostgreSQL のスキーマ名として SAP ASE スキーマ名を使用します。
[<source_db>_<schema>] – SAP ASE データベースとスキーマ名の組み合わせを PostgreSQL のスキーマ名として使用します。
-
変換後のコードでソースデータベースオブジェクトの正確な名前を使用する。
デフォルトでは、データベースオブジェクト、変数、AWS SCT パラメータの名前を小文字に変換します。これらの名前を元の大文字と小文字を区別しないでおくには、[ソースデータベースオブジェクト名の大文字と小文字を区別する] を選択します。ソース SAP ASE データベースサーバーで大文字と小文字を区別するオブジェクト名を使用する場合は、このオプションを選択してください。
大文字と小文字を区別する操作では、AWS SCT でデータベースオブジェクト名を小文字に変換する必要がありません。そのためには、[大文字と小文字を区別する操作では小文字へのキャストを避ける] を選択します。
-
SAP ASE の異なるテーブルで同じ名前のインデックスを使用できるようにする。
PostgreSQL では、スキーマで使用するインデックス名はすべて一意でなければなりません。AWS SCT ですべてのインデックスに固有の名前が生成されるようにするには、[インデックスの固有の名前を生成] を選択します。