

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

# DMS Schema Conversion でのソースとしての Microsoft SQL Server データベースの使用
<a name="data-providers-sql-server"></a>

DMS Schema Conversion は、移行ソースとして Microsoft SQL Server の次のモードをサポートしています。
+ **オンラインモード** – DMS Schema Conversion はソースデータベースに直接接続してメタデータを読み込みます。これには、DMS Schema Conversion とデータベース間のネットワーク接続が必要であり、データベースユーザーは必要な権限を持っている必要があります。ネットワーク設定の詳細については、[「スキーマ変換のためのネットワーク](https://docs.aws.amazon.com/dms/latest/userguide/instance-profiles-network.html)」を参照してください。
+ **オフラインモード** – DMS Schema Conversion は、ソースデータベースに接続せずにAmazon S3バケットに保存されているエクスポートされたスクリプトファイルからメタデータを読み取ります。ソースデータベースへのネットワーク接続が制限されているか、使用できない場合に使用します。オフラインモードを使用するには、データプロバイダーの作成時に**仮想モード**をオンにします。詳細については、「[オフラインソースと仮想ターゲットの仮想モード](virtual-data-provider.md)」を参照してください。

SQL Server のデータベースコードオブジェクトを DMS Schema Conversion を使用して次のターゲットに変換できます。
+ Aurora MySQL
+ Aurora PostgreSQL
+ RDS for MySQL
+ RDS for PostgreSQL

サポートされている SQL Server データベースのバージョンの詳細については、「[DMS Schema Conversion のソースデータプロバイダー](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.SchemaConversion)」を参照してください。

ソースの SQL Server データベースで DMS Schema Conversion を使用する方法の詳細については、「[SQL Server to MySQL migration step-by-step walkthrough](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-sql-server-mysql.html)」を参照してください。

## Microsoft SQL Server をソースとする場合の権限
<a name="data-providers-sql-server-permissions"></a>

Microsoft SQL Server をソースとして使用する場合に必要となる権限は、次のリストのとおりです。
+ VIEW DEFINITION
+ VIEW DATABASE STATE

`VIEW DEFINITION` を使用すると、パブリックアクセス許可を持つユーザーはオブジェクト定義を表示できます。DMS Schema Conversion は、`VIEW DATABASE STATE` 権限を使用して、SQL Server Enterprise Edition の機能を確認します。

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

さらに、`master` データベースに次の権限を付与します。
+ `VIEW SERVER STATE`
+ `VIEW ANY DEFINITION`

DMS Schema Conversion は、`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)」を参照してください。

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

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