

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Microsoft SQL Server を に接続する AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer"></a>

 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 に移行するための評価レポートを作成できます。

**Topics**
+ [Microsoft SQL Server をソースとする場合の権限](#CHAP_Source.SQLServer.Permissions)
+ [Microsoft SQL Server をソースとして使用するときの Windows 認証の使用](#CHAP_Source.SQLServer.Permissions.WinAuth)
+ [ソースとしての SQL Server への接続](#CHAP_Source.SQLServer.Connecting)
+ [SQL Server から MySQL への変換](CHAP_Source.SQLServer.ToMySQL.md)
+ [を使用した SQL Server から PostgreSQL への移行 AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToPostgreSQL.md)
+ [を使用した SQL Server から Amazon RDS for SQL Server への移行 AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToRDSSQLServer.md)

## Microsoft SQL Server をソースとする場合の権限
<a name="CHAP_Source.SQLServer.Permissions"></a>

ソースとして Microsoft SQL Server に必要な権限を以下に示します。
+ VIEW DEFINITION
+ VIEW DATABASE STATE

`VIEW DEFINITION` 権限により、パブリックアクセス権を持つユーザーはオブジェクト定義を表示できます。 は、SQL Server Enterprise Edition `VIEW DATABASE STATE` の機能をチェックする権限 AWS SCT を使用します。

スキーマを変換する、各データベースの付与を繰り返します。

さらに、`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 ロールへのユーザーの追加](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.AddUser)」を参照してください。

ログシッピングを検出するには、`msdb` データベースに対する `SELECT on dbo.log_shipping_primary_databases` 権限を付与します。

DDL レプリケーションの通知方法を使用するには、ソースデータベースに `RECEIVE ON {{<schema_name>}}.{{<queue_name>}}` 権限を付与します。この例では、`{{<schema_name>}}` プレースホルダーをデータベースのスキーマ名に置き換えます。次に、`{{<queue_name>}}` プレースホルダーをキューテーブルの名前に置き換えます。

## Microsoft SQL Server をソースとして使用するときの Windows 認証の使用
<a name="CHAP_Source.SQLServer.Permissions.WinAuth"></a>

アプリケーションが 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 認証の使用
<a name="CHAP_Source.SQLServer.Permissions.WinAuth.JDBC"></a>

JDBC ドライバは、Windows 以外のオペレーティングシステムで使用する場合、Windows 認証をサポートしていません。ユーザー名やパスワードなどの Windows 認証情報は、Windows 以外のオペレーティングシステムから SQL Server に接続するときには自動的に指定されません。このような場合、アプリケーションは代わりに SQL Server 認証を使用する必要があります。

JDBC 接続文字列では、Windows 認証を使用して接続するには、パラメータ `integratedSecurity` を指定する必要があります。JDBC ドライバは、`integratedSecurity` 接続文字列パラメータを通じて、Windows オペレーティングシステムで統合 Windows 認証をサポートします。

認証の統合を使用するには

1. JDBC ドライバをインストールします。

1. 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 への接続
<a name="CHAP_Source.SQLServer.Connecting"></a>

以下の手順を使用して、Microsoft SQL Server ソースデータベースを AWS Schema Conversion Toolに接続します。

**Microsoft SQL Server ソースデータベースに接続するには**

1. で AWS Schema Conversion Tool、**ソースの追加** を選択します。

1. [**Microsoft SQL Server**]、次に [**Next**] (次へ) を選択します。

   [**Add source**] (ソースの追加) ダイアログボックスが表示されます。

1. [**接続名**] にデータベースの名前を入力します。この名前が AWS SCT の左側のパネルのツリーに表示されます。

1. からデータベース認証情報を使用する AWS Secrets Manager か、手動で入力します。
   + Secrets Manager のデータベース認証情報を使用するには、以下の手順に従ってください。

     1. [**AWS シークレット**] で、シークレットの名前を選択します。

     1. [**入力**] を選択すると、Secrets Manager のデータベース接続ダイアログボックスにすべての値が自動的に入力されます。

     Secrets Manager のデータベース認証情報を使用する方法については、「[AWS Secrets Manager の の設定 AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md)」を参照してください。
   + Microsoft SQL Server ソースデータベースの接続情報を手動で入力するには、次の手順に従います。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)

1. **接続のテスト**を選択して、 がソースデータベースに接続 AWS SCT できることを確認します。

1. [**Connect**] (接続) を選択して、ソースデータベースに接続します。