AWS Schema Conversion Tool を使用して Microsoft SQL Server を接続する
AWS SCT を使用して、SQL Server からのスキーマ、データベースコードオブジェクトおよびアプリケーションコードを次のターゲットに変換できます。
Amazon RDS for MySQL
Amazon Aurora MySQL 互換エディション
Amazon RDS for PostgreSQL
Amazon Aurora PostgreSQL 互換エディション
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>
;
上記の例の
プレースホルダーを、SQL Server エージェントのロール名に置き換えます。次に、<SQLAgentRole>
プレースホルダーを以前に権限を付与したユーザーの名前に置き換えます。詳細については、『Amazon RDS ユーザーガイド』の「SQLAgentUser ロールへのユーザーの追加」を参照してください。<user_name>
ログシッピングを検出するには、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 認証モードと混合モードの 2 つのアクセスモードがあります。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 認証情報は、Windows 以外のオペレーティングシステムから SQL Server に接続するときには自動的に指定されません。このような場合、アプリケーションは代わりに SQL Server 認証を使用する必要があります。
JDBC 接続文字列では、Windows 認証を使用して接続するには、パラメータ integratedSecurity
を指定する必要があります。JDBC ドライバは、integratedSecurity
接続文字列パラメータを通じて、Windows オペレーティングシステムで統合 Windows 認証をサポートします。
認証の統合を使用するには
-
JDBC ドライバをインストールします。
-
JDBC ドライバがインストールされているコンピュータの Windows システムパス上のディレクトリに、
sqljdbc_auth.dll
ファイルをコピーします。sqljdbc_auth.dll
ファイルは次の場所にインストールされます。<インストールディレクトリ>\sqljdbc_<バージョン>\<言語>\auth\
Windows 認証を使用して SQL Server データベースへの接続を確立しようとする場合に、「このドライバは認証の統合用に設定されていません」というエラーが発生することがあります。この問題は、次のアクションを実行することで解決できます。
JDBC のインストール先パスを指す 2 つの変数を宣言します。
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
の場所です。-
sqljdbc_auth.dll
を、JDK/JRE が実行されているフォルダにコピーします。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) を実行している場合は、オペレーティングシステムが x64 バージョンであっても、x86 フォルダの sqljdbc_auth.dll ファイルを使用します。64 ビットの JVM を x64 プロセッサで実行している場合は、x64 フォルダの sqljdbc_auth.dll ファイルを使用します。
SQL Server データベースに接続するときは、[Windows Authentication] (Windows 認証) または [SQL Server Authentication] (SQL Server 認証) のどちらかを [Authentication] (認証) オプションで選択できます。
ソースとしての SQL Server への接続
以下の手順を使用して、Microsoft SQL Server ソースデータベースを AWS Schema Conversion Tool に接続します。
Microsoft SQL Server ソースデータベースに接続するには
-
AWS Schema Conversion Tool で、[Add source] (ソースの追加) を選択します。
-
[Microsoft SQL Server]、次に [Next] (次へ) を選択します。
[Add source] (ソースの追加) ダイアログボックスが表示されます。
-
[接続名] にデータベースの名前を入力します。この名前が AWS SCT の左側のパネルのツリーに表示されます。
-
AWS Secrets Manager からのデータベース認証情報を使用するか、手動で入力してください。
-
Secrets Manager のデータベース認証情報を使用するには、以下の手順に従ってください。
-
[AWS シークレット] で、シークレットの名前を選択します。
-
[入力] を選択すると、Secrets Manager のデータベース接続ダイアログボックスにすべての値が自動的に入力されます。
Secrets Manager のデータベース認証情報を使用する方法については、「AWS Schema Conversion Tool での AWS Secrets Manager の設定」を参照してください。
-
-
Microsoft SQL Server ソースデータベースの接続情報を手動で入力するには、次の手順に従います。
パラメータ アクション [Server name] (サーバー名) ソースデータベースサーバーのドメインネームサービス (DNS) 名または IP アドレスを入力します。
ソースの SQL Server データベースには、IPv6 アドレスプロトコルを使用して接続できます。そのためには、次の例に示すように IP アドレスの入力に角括弧を使用することを確認します。
[2001:db8:ffff:ffff:ffff:ffff:ffff:fffe]
Server port ソースデータベースサーバーへの接続に使用するポートを入力します。
Instance name SQL Server データベースのインスタンス名を入力します。インスタンス名を見つけるには、SQL Server データベースに対してクエリ
SELECT @@servername;
を実行します。認証 [Windows Authentication] (Windows 認証) および [SQL Server Authentication] (SQL Server 認証) から認証タイプを選択します。
[User name] (ユーザー名) と [Password] (パスワード) データベース認証情報を入力して、ソースデータベースサーバーに接続します。
AWS SCT でパスワードを使用して、プロジェクト内のデータベースに接続することを選択する場合にのみソースデータベースに接続します。ソースデータベースのパスワードの漏洩を防ぐため、デフォルトで AWS SCT にパスワードは保存されません。AWS SCT プロジェクトを閉じて再び開いた場合は、必要に応じて、ソースデータベースへの接続に使用するパスワードの入力を求められます。
SSL の使用 データベースへの接続に Secure Sockets Layer (SSL) を使用する場合は、このオプションを選択します。[SSL] タブで、必要に応じて、以下の追加情報を提供します。
-
[サーバー証明書を信頼する]: サーバー証明書を信頼するには、このオプションを選択します。
-
[信頼ストア]: 証明書を保存している信頼ストアの場所。この場所を [グローバル設定] セクションに表示するには、必ず追加してください。
Store Password AWS SCT は、安全なボールトを作成して、SSL 証明書とデータベースパスワードを保存します。このオプションを有効にすると、データベースのパスワードが保存されるため、パスワードを入力しなくてもデータベースにすばやく接続できます。
Sql Server Driver Path ソースデータベースへの接続に使用するドライバのパスを入力します。詳細については、「AWS Schema Conversion Tool 用の JDBC ドライバーのインストール」を参照してください。
ドライバパスをグローバルプロジェクト設定に保存する場合、ドライバパスは接続ダイアログボックスに表示されません。詳細については、「グローバル設定でのドライバパスの保存」を参照してください。
Windows 認証ライブラリ sqljdbc_auth.dll
ファイルへのパスを入力します。デフォルトでは、このファイルは次の場所にインストールされます。<installation directory of the JDBC driver>
sqljdbc_<version>
\<language>
\auth\ -
-
-
[Test Connection] (接続のテスト) を選択して、AWS SCT がソースデータベースに正常に接続できることを確認します。
-
[Connect] (接続) を選択して、ソースデータベースに接続します。