SQL Server への接続 (OracleToSQL)

Oracle データベースを SQL Server に移行するには、SQL Server のターゲット インスタンスに接続する必要があります。 接続すると、SSMA は SQL Server のインスタンス内のすべてのデータベースに関するメタデータを取得し、SQL Server メタデータ エクスプローラーにデータベース メタデータを表示します。 SSMA には、接続先の SQL Server のインスタンスに関する情報が格納されますが、パスワードは格納されません。

SQL Server への接続は、Project を閉じるまでアクティブなままです。 Project を再度開くときに、サーバーへのアクティブな接続が必要な場合は、SQL Server に再接続する必要があります。 データベース オブジェクトを SQL Server に読み込んでデータを移行するまで、オフラインで作業できます。

SQL Server のインスタンスに関するメタデータは自動的には同期されません。 代わりに、SQL Server メタデータ エクスプローラーでメタデータを更新するには、SQL Server メタデータを手動で更新する必要があります。 詳細については、このトピックで後述する「SQL Server メタデータの同期」セクションを参照してください。

必要な SQL Server アクセス許可

SQL Server への接続に使用されるアカウントには、アカウントが実行するアクションに応じて異なるアクセス許可が必要です。

  • Oracle オブジェクトを Transact-SQL 構文に変換したり、SQL Server からメタデータを更新したり、変換された構文をスクリプトに保存したりするには、SQL Server のインスタンスにログオンするためのアクセス許可がアカウントに必要です。

  • SQL Server にデータベース オブジェクトを読み込むには、アカウントが db_ddladmin データベース ロールのメンバーである必要があります。

  • SQL Server にデータを移行するには、次のアカウントが必要です。

    • クライアント側のデータ移行エンジンを使用している場合は、db_owner データベース ロールのメンバー。
    • サーバー側のデータ移行エンジンを使用している場合は、sysadmin サーバー ロールのメンバー。 これは、SSMA 一括コピー ツールを実行するためのデータ移行中に CmdExec SQL Server エージェント ジョブ ステップを作成するために必要です。

      注意

      SQL Server エージェント プロキシ アカウントは、サーバー側のデータ移行ではサポートされていません。

  • SSMA によって生成されたコードを実行するには、ターゲット データベースのssma_oracle スキーマ内のすべてのユーザー定義関数に対するEXECUTE アクセス許可がアカウントに必要です。 これらの関数は、Oracle システム関数と同等の機能を提供し、変換されたオブジェクトによって使用されます。

SQL Server 接続の確立

Oracle データベース オブジェクトを SQL Server 構文に変換する前に、Oracle データベース (複数可) を移行する SQL Server のインスタンスへの接続を確立する必要があります。

接続プロパティを定義するときは、オブジェクトとデータを移行するデータベースも指定します。 このマッピングは、SQL Server に接続した後、Oracle スキーマ レベルでカスタマイズできます。 詳細については、「SQL Server スキーマへの Oracle スキーマのマッピング (OracleToSQL)」を参照してください。

重要

SQL Server に接続する前に、SQL Server のインスタンスが実行されており、接続を受け入れることを確認してください。

SQL Server に接続するには:

  1. [File] (ファイル) メニューの [Connect to SQL Server] (SQL Server への接続) を選択します。 以前に SQL Server に接続した場合、コマンド名は [Reconnect to SQL Server] (SQL Server に再接続) となります。

  2. 接続ダイアログ ボックスに、SQL Server のインスタンスの名前を入力または選択します。

    • ローカル コンピュータ上の既定のインスタンスに接続する場合は、localhost またはドット (.) を入力できます。
    • 別のコンピュータ上の既定のインスタンスに接続する場合は、コンピュータの名前を入力します。
    • 別のコンピュータの名前付きインスタンスに接続する場合は、MyServer\MyInstance など、コンピュータ名の後にバックスラッシュ、その後にインスタンスの名前を使用します。
  3. SQL Server のインスタンスが既定以外のポートで接続を受け入れるように構成されている場合は、[Server port] (サーバー ポート) ボックスに SQL Server 接続に使用されるポート番号を入力します。 SQL Server の既定のインスタンスでは、既定のポート番号は 1433 です。 名前付きインスタンスの場合、SSMA は SQL Server Browser サービスからポート番号の取得を試みます。

  4. [Database] (データベース) ボックスに、ターゲット データベースの名前を入力します。 このオプションは、SQL Server に再接続するときには使用できません。

  5. [Authentication] (認証) ボックスで、接続に使用する認証の種類を選択します。 現在の Windows アカウントを使用するには、[Windows Authentication] (Windows 認証) を選択します。 SQL Server ログインを使用するには、[SQL Server Authentication] (SQL Server 認証) を選択し、ログイン名とパスワードを入力します。

  6. セキュリティ保護接続の場合、[Encrypt Connection] (接続の暗号化) チェック ボックスと [TrustServerCertificate] チェック ボックスの 2 つのコントロールが追加されます。 [Encrypt Connection] (接続の暗号化) がチェックされている場合にのみ、TrustServerCertificate チェック ボックスが表示されます。 [Encrypt Connection] (接続の暗号化) がチェックされていて (true)、TrustServerCertificate のチェックが外されている (false) 場合、SQL Server SSL 証明書の妥当性確認が行われます。 サーバー証明書の検証は、SSL ハンドシェイクの一部であり、接続先のサーバーが適切なサーバーであることを保証します。 これを確実に行うには、クライアント側とサーバー側に証明書をインストールする必要があります。

  7. [接続] をクリックします。

重要

より高いバージョンの SQL Server に接続することもできますが、移行プロジェクトの作成時に選択したバージョンと比較すると、データベース オブジェクトの変換は、接続先の SQL Server のバージョンではなく、プロジェクトのターゲット バージョンによって決まります。

SQL Server メタデータの同期

SQL Server データベースに関するメタデータは自動更新されません。 SQL Server メタデータ エクスプローラーのメタデータは、最初に SQL Server に接続したとき、またはメタデータを最後に手動で更新したときのメタデータのスナップショットです。 すべてのデータベースのメタデータ、または任意の単一データベースまたはデータベース オブジェクトのメタデータを手動で更新できます。 メタデータを同期するには:

  1. SQL Server に接続していることを確認します。

  2. SQL Server メタデータ エクスプローラーで、更新するデータベースまたはデータベース スキーマの横にあるチェック ボックスを選択します。 たとえば、すべてのデータベースのメタデータを更新するには、[Databases] (データベース) の横にあるボックスを選択します。

  3. [Databases] (データベース)、または個々のデータベースまたはデータベース スキーマを右クリックし、[Synchronize with Databse] (データベースと同期) を選択します。

次の手順

移行の次の手順は、プロジェクトのニーズによって異なります。

参照

SQL Server への Oracle のデータの移行 (OracleToSQL)