適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric SQL Database
一括コピー プログラム ユーティリティ (bcp) では、Azure SQL Database、Azure SQL Managed Instance、Microsoft Fabric の SQL Database、Azure Synapse Analytics、または SQL Server 2022 (16.x) 以降のバージョンに接続するときに、いくつかの Microsoft Entra ID 認証モデルがサポートされます。
インストールされている bcp が Microsoft Entra 認証をサポートしているかどうかを確認するには、 bcp --help を実行し、使用可能な引数の一覧に -G が表示されることを確認します。
プラットフォームの制限
すべてのプラットフォームですべての認証モードを使用できるわけではありません。
Microsoft Entra 対話型認証は、Windows でのみサポートされています。
Linux および macOS での Microsoft Entra 統合認証には、 Microsoft ODBC Driver 18 for SQL Server (ドライバー 18 に移行できない場合はドライバー 17.6.1 以降) と 、適切に構成された Kerberos 環境が必要です。
アクセス トークン ファイル (
-P <token_file>) を使用した認証は、Linux および macOS でのみサポートされています。
Microsoft Entra ユーザー名とパスワード
-G (ユーザー名) と-U (パスワード) と共に-Pを指定します。
次の例では、テーブル bcptestをtestdbのデータベース contoso.database.windows.netからファイル c:\last\data1.datにエクスポートします。
<password> を有効なパスワードに置き換えます。
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
次の例では、同じデータをインポートします。
bcp bcptest in "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
Microsoft Entra の統合
-Gや-Uなしで-Pを提供します。 現在の Windows アカウント (または Linux/macOS 上の Kerberos ID) は、Microsoft Entra ID とフェデレーションする必要があります。 次の例では、 <server> をサーバー名に置き換えます。
エクスポート:
bcp bcptest out "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
インポート:
bcp bcptest in "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
Microsoft Entra マネージド サービス ID
構成された DSN を使用して、システム割り当てマネージド ID またはユーザー割り当てマネージド ID として認証します。 同じアプローチは、 bcp in と bcp outの両方で機能します。
Important
bcp はドライバーに緊密に結合されています。
bcp のメジャー バージョンは、DSN が作成されるドライバーのメジャー バージョンと一致している必要があります。
bcp のバージョンを確認するには、bcp -vを実行します。
ODBC データ ソース管理者を使用して DSN を構成します。
- キーボードの Windows キーを押します。
- 「
ODBC」と入力し、適切なバージョンの ODBC データ ソース アドミニストレーターを選択します。 - [ ユーザー DSN ] タブまたは [ システム DSN ] タブを選択します。
- [ 追加] を選択し、プロンプトに従います。
- 認証の種類を求められたら、 Azure マネージド サービス ID 認証を選択します。
- ユーザー割り当てマネージド ID の場合は、ID の
Object (principal) IDを [認証] タブの [ログイン ID ] ボックスに貼り付けます。 - プロンプトに従って DSN の構成を完了します。
スクリーンショットを含む完全なチュートリアルについては、「UI で DSN を作成および編集する」を参照してください。
-D フラグを使用して、-Sに渡される値が DSN であることを示します。
-Dスイッチと-S スイッチは、コマンド ライン上の任意の順序で表示できます。
bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb
Microsoft Entra ID アクセス トークン
適用対象: Linux と macOS のみ。 Windows はサポートされていません。
Linux および macOS の bcp 17.8 以降のバージョンでは、アクセス トークンを使用して認証できます。 次の例では、 Azure CLI を使用してトークンを取得し、セキュリティで保護された一時ファイルに書き込みます。
Important
トークン ファイルは、BOM なしの UTF-16LE である必要があります。 次の例に示すように、ファイルのアクセス許可を制限し、不要になったらファイルを削除します。
システムによって割り当てられた管理ID
<server>をサーバー名に置き換えます。
マネージド ID でサインインします。
az login --identityトークンを取得し、セキュリティで保護された一時ファイルに書き込み、 bcp を実行します。
# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
ユーザー指定のマネージド ID
ユーザー割り当てマネージド ID でサインインします。
<client_id>を環境の有効な値に置き換えます。az login --identity --username <client_id>トークンを取得し、セキュリティで保護された一時ファイルに書き込み、bcp を実行 します。
<server>を環境の有効な値に置き換えます。# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
Microsoft Entra Interactive
適用対象: Windows のみ。 Linux と macOS はサポートされません。
Microsoft Entra 対話型認証では、ダイアログを使用して認証が行われ、多要素認証 (MFA) がサポートされます。 対話型認証には 、bcpバージョン 15.0.1000.34 以降と、 SQL Server 用 ODBC Driver 18 (またはドライバー 17.2 以降) が必要です。
-Gには-U(ユーザー名)のみを提供してください。
-Pを含めないでください。
bcp はパスワードの入力を求めます (または MFA が有効になっているアカウントの場合は、構成された MFA フローが完了します)。
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com
フェデレーション ドメインの Windows アカウントである Microsoft Entra ユーザーの場合は、ユーザー名にドメインを含めます (たとえば、 joe@contoso.com)。
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U joe@contoso.com
Microsoft Entra テナントのゲスト ユーザーが、Azure SQL Database のデータベースアクセス許可を持つグループの一部である場合は、ゲスト ユーザー エイリアス ( keith0@adventure-works.com など) を使用します。
関連するコンテンツ
- bcp ユーティリティ
- bcp ユーティリティをダウンロードしてインストールする
- bcp ユーティリティの使用方法
- Azure SQL 向け Microsoft Entra 認証
- Microsoft Fabric SQL データベースでの認証
サポートを受ける
- SQL のアイデア: SQL Server の改善に関する提案はありますか?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (タグ sql-server): SQL Serverへの質問をしてください
- Stack Overflow (タグ sql-server): SQL 開発に関する質問への回答
- Microsoft SQL Server ライセンス条項と情報
- 法人のお客様向けサポート オプション
- 追加のSQL Serverのヘルプとフィードバック
SQL ドキュメントへの投稿
SQL コンテンツを自分で編集できることはご存じですか。 これにより、ドキュメントが改善されるだけでなく、ページの共同作成者としてもクレジットされます。
詳細については、 Microsoft Learn ドキュメントの編集を参照してください。