Oracle データベースへの接続 (OracleToSQL)
Oracle データベースを SQL Server に移行するには、移行先の Oracle データベースに接続する必要があります。 接続すると、SQL Server Migration Assistant (SSMA) はすべての Oracle スキーマに関するメタデータを取得し、Oracle メタデータ エクスプローラー ウィンドウに表示されます。 SSMA ではデータベース サーバーに関する情報が格納されますが、パスワードは格納されません。
データベース への接続は、プロジェクトを閉じるまでアクティブなままです。 プロジェクトを再度開くときに、データベースへのアクティブな接続が必要な場合は、再接続する必要があります。
Oracle データベースに関するメタデータは自動更新されません。 Oracle メタデータ エクスプローラーでメタデータを更新する場合は、手動で更新する必要があります。 詳細については、この記事の Oracle メタデータの更新 セクションをご覧ください。
必要な Oracle アクセス許可
少なくとも、Oracle データベースへの接続に使用するアカウントには、次のアクセス許可が必要です。
権限 | 説明 |
---|---|
CONNECT |
データベースに接続 (セッションを作成) するために必要です。 |
SELECT ANY DICTIONARY |
すべてのオブジェクトを検出するには、システム ディクショナリ テーブル (たとえば SYS.MLOG$ ) のクエリを実行する必要があります。 |
これにより、SSMA は、接続しているユーザーが所有するスキーマ内のすべてのオブジェクトを読み込むことができます。 ほとんどの実際のシナリオでは、ストアド プロシージャ間でスキーマ間の参照があり、SSMA は変換を成功させるために参照されているすべてのオブジェクトを検出できる必要があります。 他のスキーマで定義されているオブジェクトのメタデータを取得するには、アカウントに次の追加のアクセス許可が必要です。
権限 | 説明 |
---|---|
SELECT ANY TABLE |
他のスキーマのテーブル、ビュー、具現化されたビュー、シノニムを検出するために必要です。 |
SELECT ANY SEQUENCE |
他のスキーマのシーケンスを検出するために必要です。 |
CREATE ANY PROCEDURE |
他のスキーマのプロシージャ、関数、およびパッケージの PL/SQL を検出するために必要です。 |
CREATE ANY TRIGGER |
他のスキーマのトリガー定義を検出するために必要です。 |
CREATE ANY TYPE |
他のスキーマで定義されている型を検出するために必要です。 |
一部の SSMA 機能には、追加のアクセス許可が必要です。 たとえば、 移行されたデータベース オブジェクト (OracleToSQL) と 管理バックアップ (OracleToSQL) 機能を使用する場合は、接続しているユーザーに次のアクセス許可を付与する必要があります。
権限 | 説明 |
---|---|
EXECUTE ANY PROCEDURE |
すべてのスキーマでテストするプロシージャと関数を実行するために必要です。 |
CREATE ANY TABLE および ALTER ANY TABLE |
変更の追跡とバックアップのために一時テーブルを作成および変更するために必要です。 |
INSERT ANY TABLE および UPDATE ANY TABLE |
変更履歴とバックアップ データを一時テーブルに挿入するために必要です。 |
DROP ANY TABLE |
変更の追跡とバックアップに使用される一時テーブルを削除するために必要です。 |
CREATE ANY INDEX および ALTER ANY INDEX |
変更の追跡とバックアップに使用される一時テーブルのインデックスを作成および変更するために必要です。 |
DROP ANY INDEX |
変更の追跡とバックアップに使用される一時テーブルのインデックスを削除するために必要です。 |
CREATE ANY TRIGGER および ALTER ANY TRIGGER |
変更の追跡に使用される一時的なトリガーを作成および変更するために必要です。 |
DROP ANY TRIGGER |
変更の追跡に使用される一時的なトリガーを削除するために必要です。 |
これは、SSMA が正常に動作するために必要な一般的なアクセス許可のセットです。 移行のスコープをスキーマのサブセットに絞り込む場合は、上記のアクセス許可を ALL
ではなく、オブジェクトの制限されたセットに付与することで行うことができます。 可能な限り、すべての依存関係を正しく識別することが困難な場合があるため、SSMA が正常に機能しなくなる可能性があります。 移行プロセス中に潜在的なアクセス許可の問題を排除するために、前に定義したジェネリック セットに従うことを強くお勧めします。
Oracle への接続を確立する
データベースに接続すると、SSMA はデータベース メタデータを読み取り、このメタデータをプロジェクト ファイルに追加します。 このメタデータは、オブジェクトを SQL Server 構文に変換するとき、およびデータを SQL Server に移行するときに SSMA によって使用されます。 Oracle メタデータ エクスプローラー ペインでこのメタデータを参照し、個々のデータベース オブジェクトのプロパティを確認できます。
重要
接続を試みる前に、データベース サーバーが実行中であり、接続を受け入れることを確認してください。
Oracle への接続
[ファイル] メニューの [Oracle に接続] を選択します。
以前に Oracle に接続したことがある場合、コマンド名は [Oracle に再接続] です。
[プロバイダー] ボックスで、インストールされているプロバイダーに応じて、[Oracle クライアント プロバイダー] または [OLE DB プロバイダー] を選択します。 既定値は Oracle クライアントです。
[モード] ボックスで、標準モード、TNSNAME モード、または接続文字列モードのいずれかを選択します。
標準モードを使用して、サーバー名とポートを指定します。 サービス名モードを使用して、Oracle サービス名を手動で指定します。 接続文字列モードを使用して、完全な接続文字列を指定します。
標準モードを選択した場合は、次の値を指定します。
[サーバー名] ボックスにターゲット サーバーの名前またはデータベース サーバーの IP アドレスを入力します。
データベース サーバー が既定のポート (
1521
) で接続を受け入れるように構成されていない場合は、[サーバーのポート] ボックスに Oracle 接続に使用されるポート番号を入力します。[Oracle SID] ボックスに、システム識別子を入力します。
[ユーザー名] ボックスに、必要なアクセス許可を持つ Oracle アカウントを入力します。
[パスワード] ボックスに、指定したユーザーのパスワードを入力します。
TNSNAME モードを選択した場合は、次の値を指定します。
- [接続識別子] ボックスに、データベースの接続識別子 (TNS エイリアス) を入力します。
- [ユーザー名] ボックスに、必要なアクセス許可を持つ Oracle アカウントを入力します。
- [パスワード] ボックスに、指定したユーザーのパスワードを入力します。
接続文字列モードを選択した場合は、[接続文字列] ボックスに接続文字列を指定します。
OLE DB 接続文字列の例を次に示します。
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
次の例は、統合セキュリティを使用する Oracle クライアント接続文字列を示しています。
Data Source=MyOracleDB;Integrated Security=yes;
詳細については、「 Connect to Oracle (OracleToSQL)」を参照してください。
Oracle への再接続
データベース サーバー への接続は、プロジェクトを閉じるまでアクティブなままです。 プロジェクトを再度開くときに、データベースへのアクティブな接続が必要な場合は、再接続する必要があります。 メタデータを更新し、データベース オブジェクトを SQL Serverに読み込み、データを移行するまでは、オフラインで作業できます。
Oracle メタデータを更新する
Oracle データベースに関するメタデータは自動更新されません。 Oracle メタデータ エクスプローラーのメタデータは、最初に接続したとき、またはメタデータを最後に手動で更新したときのメタデータのスナップショットです。 すべてのスキーマ、1 つのスキーマ、または個々のデータベース オブジェクトのメタデータを手動で更新できます。
データベースに接続していることを確認します。
SQL Server メタデータ エクスプローラーで、更新する各スキーマまたはデータベース オブジェクトの横にあるチェック ボックスを選択します。
[スキーマ]、または個々のスキーマまたはデータベース オブジェクトを右クリックし、[データベースから更新] を選択します。 アクティブな接続がない場合は、SSMA に [Oracle への接続] ダイアログ ボックスが表示され、接続を促します。
[データベースから更新] ダイアログ ボックスで、更新するオブジェクトを指定します。
- オブジェクトを更新するには、矢印が表示されるまでオブジェクトの横にある [アクティブ] フィールドをクリックします。
- オブジェクトの更新を防ぐには、X が表示されるまでオブジェクトの横にある [アクティブ] フィールドをクリックします。
- オブジェクトのカテゴリを更新または拒否するには、カテゴリ フォルダーの横にある [アクティブ] フィールドを選択します。
カラー コーディングの定義を表示するには、[凡例] ボタンを選択します。
[OK] を選択します。