ADO.NET 接続マネージャー
適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム
ADO.NET 接続マネージャーを使用すると、パッケージは .NET プロバイダーを使用してデータ ソースにアクセスできます。 通常、Microsoft SQL Server などのデータ ソースにアクセスするには、この接続マネージャーを使用します。 また、C# などの言語を使用してマネージド コードに記述されたカスタム タスク内で、OLE DB や XML を介して公開されているデータ ソースにもアクセスできます。
ADO.NET 接続マネージャーをパッケージに追加すると、SQL Server Integration Services によって、実行時に ADO.NET 接続として解決される接続マネージャーが作成されます。 接続マネージャーのプロパティが設定され、接続マネージャーがパッケージの Connections コレクションに追加されます。
接続マネージャーの ConnectionManagerType
プロパティは、ADO.NET
に設定されます。 ConnectionManagerType
の値には、接続マネージャーが使用する .NET プロバイダーの名前を含めることができます。
注意
Microsoft Entra ID は、以前は Azure Active Directory (Azure AD) と呼ばれていました。
ADO.NET 接続マネージャーのトラブルシューティング
Microsoft.Data.SqlClient ドライバーは、SQL 2022 以前ではサポートされていません。 MSI またはMicrosoft Entra ID に基づく認証方法が必要な場合は、代わりに Oledb 接続マネージャーを使用してください。
ADO.NET 接続マネージャーによる外部データ プロバイダーの呼び出しをログに記録できます。 その後、ADO.NET 接続マネージャーによる外部データ ソースへの接続に関するトラブルシューティングを行うことができます。 ADO.NET 接続マネージャーによる外部データ プロバイダーの呼び出しのログを記録するには、パッケージ ログ記録を有効にして、パッケージ レベルで Diagnostic イベントを選択する必要があります。 詳細については、「 パッケージ実行のトラブルシューティング ツール」を参照してください。
ADO.NET 接続マネージャーに読み込まれるとき、SQL Server の特定の日付データ型のデータでは、次の表に示す結果が生成されます。
SQL Server データ型 | 結果 |
---|---|
time、 datetimeoffset | パッケージがパラメーター化 SQL コマンドを使用していない場合、パッケージは失敗します。 パラメーター化 SQL コマンドを使用するには、パッケージで SQL 実行タスクを使用します。 詳細については、「 SQL 実行タスク 」と「 SQL 実行タスクのパラメーターとリターン コード」を参照してください。 |
datetime2 | ADO.NET 接続マネージャーは、ミリ秒の値を切り捨てます。 |
注意
SQL Server データ型の詳細とそれを Integration Services データ型にマッピングする方法については、「データ型 (Transact-SQL)」と「Integration Services のデータ型」を参照してください。
ADO.NET 接続マネージャーの構成
プロパティの設定は、SSIS デザイナーまたはプログラムで行います。
選択した .NET プロバイダーの要件を満たすように構成された、特定の接続文字列を指定します。
プロパイダによっては、接続先のデータ ソースの名前を指定します。
選択したプロバイダーに適したセキュリティ資格情報を指定します。
接続マネージャーから作成される接続を、実行時に保持するかどうかを指定します。
ADO.NET 接続マネージャーの多くの構成オプションは、接続マネージャーが使用する .NET プロバイダーによって異なります。
SSIS デザイナーで設定できるプロパティの詳細については、「ADO.NET 接続マネージャーの構成」を参照してください。
プログラムによる接続マネージャーの構成については、「 ConnectionManager 」と「 プログラムによる接続の追加に設定されます。
ADO.NET 接続マネージャーを構成する
.NET Framework データ プロバイダーを使用してアクセスできるデータ ソースへの接続を追加するには、 [ADO.NET の接続マネージャーの構成] ダイアログ ボックスを使用します。 たとえば、そのようなプロバイダーの 1 つは SqlClient プロバイダーです。 接続マネージャーでは、既存の接続を使用することも、新しく接続を作成することもできます。
ADO.NET 接続マネージャーの詳細については、「 ADO.NET Connection Manager」を参照してください。
オプション
[データ接続]
一覧から既存の ADO.NET データ接続を選択します。
[データ接続のプロパティ]
選択した ADO.NET データ接続のプロパティとその値を表示します。
[新規作成]
[接続マネージャー] ダイアログ ボックスを使用して、ADO.NET データ接続を作成します。
削除
接続を選択し、 [削除] を選択して削除します。
Azure リソース認証用のマネージド ID
Azure Data Factory (ADF) の Azure-SSIS Integration Runtime (IR) 上で SSIS パッケージを実行する場合は、Microsoft Entra 認証を、ご利用の ADF 用のマネージド ID と一緒に使用することで、Azure SQL Database または SQL Managed Instance にアクセスすることができます。 Azure-SSIS IR ではこのマネージド ID を使用して、データベースにアクセスし、そのデータベースとの間でデータをコピーすることができます。
注意
ユーザー割り当てマネージド ID を使用して認証する場合は、同じ ID で SSIS Integration Runtime を有効にする必要があります。 詳細情報については、「Azure-SSIS Integration Runtime のMicrosoft Entra 認証を有効にする」を参照してください。
ADF がマネージド ID を使用して Azure SQL Database にアクセスできるようにするには、次の手順に従います。
まだプロビジョニングしていない場合は、Azure portal で Azure SQL Database の論理サーバーに Microsoft Entra 管理者をプロビジョニングします。 Microsoft Entra 管理者は、ユーザーまたはグループにすることができます。 管理者としてグループを割り当て、ADF のマネージド ID がそのグループのメンバーである場合は、手順 2 と 3 をスキップできます。 管理者は、論理サーバーへのフル アクセスを持っています。
ADF 用に割り当てられたマネージド ID を表明する包含データベース ユーザーを作成します。 SQL Server Management Studio (SSMS) と、少なくとも ALTER ANY USER アクセス許可を持つ Microsoft Entra ユーザーを使用して、データをコピーするデータベースに接続します。 次の T-SQL ステートメントを実行します。
CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
ADF にシステム割り当てマネージド ID を使用する場合、your managed identity name はご利用の ADF 名です。 ADF にユーザー割り当てマネージド ID を使用する場合、your managed identity name は、マネージド ID の名です。
SQL ユーザーに対して通常行うのと同じように、ADF 用のマネージド ID に対して、必要なアクセス許可を付与します。 適切なロールについては、「データベース レベルのロール」をご覧ください。 次の T-SQL ステートメントを実行します。 詳細については、こちらの記事を参照してください。
EXEC sp_addrolemember [role name], [your managed identity name];
ADF に割り当てられたマネージド ID を使用して Azure SQL Managed Instance にアクセスするには、これらの手順に従います。
まだプロビジョニングしていない場合は、Azure portal で Azure SQL Managed Instance の Microsoft Entra 管理者をプロビジョニングします。 Microsoft Entra 管理者は、ユーザーまたはグループにすることができます。 管理者としてグループを割り当て、マネージド ID がそのグループのメンバーである場合は、手順 2 から 4 をスキップできます。 管理者は、Managed Instance へのフル アクセスを持つことになります。
ADF のマネージド ID 用のログインを作成します。 SSMS で、sysadmin アクセス許可を持つアカウントまたは Microsoft Entra 管理者を使用してManaged Instanceに接続します。
master
データベースで、次の T-SQL ステートメントを実行します。CREATE LOGIN [your managed identity name] FROM EXTERNAL PROVIDER;
ADF にシステム割り当てマネージド ID を使用する場合、your managed identity name はご利用の ADF 名です。 ADF にユーザー割り当てマネージド ID を使用する場合、your managed identity name は、マネージド ID の名です。
ADF 用に割り当てマネージド ID を表す包含データベース ユーザーを作成します。 SSMS を使用して、データをコピーするデータベースに接続し、次の T-SQL ステートメントを実行します。
CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
SQL ユーザーに対して通常行うのと同じように、ADF 用のマネージド ID に対して、必要なアクセス許可を付与します。 次の T-SQL ステートメントを実行します。 詳細については、こちらの記事を参照してください。
ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your managed identity name];
最後に、ADO.NET 接続マネージャーで、ADF のマネージド ID を使用して Microsoft Entra 認証を構成することができます。 これを行うには次のオプションがあります。
設計時に構成します。 SSIS デザイナーで、ADO.NET 接続マネージャーを右クリックして、 [プロパティ] を選択します。 プロパティ
ConnectUsingManagedIdentity
をTrue
に更新します。注意
SSIS デザイナーまたは SQL Server パッケージを実行しても、接続マネージャーのプロパティ
ConnectUsingManagedIdentity
は有効になりません。これは、ADF のマネージド ID を使用した Microsoft Entra 認証が機能しないことを示しています。実行時に構成します。 SSMS または ADF パイプラインでの SSIS パッケージの実行アクティビティを介してパッケージを実行する場合は、ADO.NET 接続マネージャーを見つけて、そのプロパティ
ConnectUsingManagedIdentity
をTrue
に更新します。注意
Azure-SSIS IR では、Microsoft Entra 認証と、ADF 用のマネージド ID とを使用すると、ADO.NET 接続マネージャーで事前に構成された他のすべての認証方法 (統合セキュリティおよびパスワードなど) がオーバーライドされます。
既存のパッケージに対して、ADF のマネージド ID を使用して Microsoft Entra 認証を構成する場合は、最新の SSIS デザイナーで SSIS プロジェクトを少なくとも 1 回リビルドする方法をお勧めしています。 Azure-SSIS IR 上で実行する SSIS プロジェクトを再デプロイします。これにより、プロジェクト内のすべての ADO.NET 接続マネージャーに新しい接続マネージャーのプロパティ ConnectUsingManagedIdentity
が自動的に追加されます。 また、、実行時にプロパティ パス \Package.Connections[{the name of your connection manager}].Properties[ConnectUsingManagedIdentity] を True
に割り当てることで、プロパティのオーバーライドを直接使用する方法もあります。