次の方法で共有


Databricks ODBC ドライバー (Simba) の認証設定

このページでは、 Databricks ODBC ドライバーの Azure Databricks 認証設定を構成する方法について説明します。

Databricks ODBC ドライバーは、次の Azure Databricks 認証の種類をサポートしています。

Microsoft Entra ID トークン

ODBC ドライバー 2.6.15 以降では、Azure Databricks ユーザーまたは Microsoft Entra ID サービス プリンシパルの Microsoft Entra ID トークンがサポートされています。

Microsoft Entra ID アクセス トークンを作成するには、次の操作を行います。

Microsoft Entra ID アクセス トークンの既定の有効期間は約 1 時間です。 更新トークンでコードを実行して、接続を中断することなく、既存のセッションのアクセス トークンをプログラムで 更新します。 手順については、Databricks ODBC ドライバー ガイドの OAuth 2.0 の使用 を参照してください。

Microsoft Entra ID トークンを使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 価値
AuthMech 11
Auth_Flow 0
Auth_AccessToken Microsoft Entra ID トークン

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=0
Auth_AccessToken=<microsoft-entra-id-token>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=0;
Auth_AccessToken=<microsoft-entra-id-token>

詳細については、Databricks ODBC ドライバー ガイド (HTML または PDF) の「トークン パススルー」セクションを参照してください。

Azure ロールを持つサービス プリンシパル

Microsoft Entra ID サービス プリンシパルが Azure のワークスペース リソースに対する Azure ロールを持っていて、Azure Databricks ワークスペースにない場合は、ODBC 接続で追加の HTTP ヘッダーを設定する必要があります。 Simba Spark ODBC Driver では、 http.header.[HeaderKey]=[HeaderValue]形式を使用したヘッダーの追加がサポートされています。

DSN または DSNレスタイプの接続文字列に、Azure ロールを持つサービス プリンシパルから次の必須ヘッダーを設定します。

  • http.header.X-Databricks-Azure-SP-Management-Token=<management-access-token>
  • http.header.X-Databricks-Azure-Workspace-Resource-Id=<workspace-resource-id>

管理トークンを取得するには、 Azure ロールを持つサービス プリンシパルに関するページを参照してください。 ワークスペース リソース ID を取得するには、 Azure マネージド ID 認証に関するページを参照してください。

OAuth 2.0 トークン

ODBC ドライバー 2.7.5 以降では、Microsoft Entra ID サービス プリンシパルの OAuth 2.0 トークンがサポートされています。 これは、OAuth 2.0 ''トークン パススルー'' 認証とも呼ばれます。

  • Microsoft Entra ID サービス プリンシパルのトークン パススルー認証用の OAuth 2.0 トークンを作成するには、「 OAuth M2M アクセス トークンを手動で生成する」を参照してください。 サービス プリンシパルの OAuth access_token 値を書き留めます。
  • Microsoft Entra ID マネージド サービス プリンシパルを作成するには、「 サービス プリンシパル」を参照してください。

重要

ODBC ドライバー 2.7.5 以降では、Azure Databricks OAuth シークレットを使用した OAuth 2.0 トークンの作成がサポートされています。 Microsoft Entra ID シークレットはサポートされていません。

OAuth 2.0 トークンの既定の有効期間は 1 時間です。 新しい OAuth 2.0 トークンを生成するには、このプロセスを繰り返します。

OAuth 2.0 トークン パススルー認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 価値
AuthMech 11
Auth_Flow 0
Auth_AccessToken Azure Databricks OAuth トークン
(OAuth 2.0 トークン パススルー認証では、Microsoft Entra ID トークンはサポートされていません)。

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=0
Auth_AccessToken=<databricks-oauth-token>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=0;
Auth_AccessToken=<databricks-oauth-token>

詳細については、Databricks ODBC ドライバー ガイド (HTML または PDF) の「トークン パススルー」セクションを参照してください。

Databricks OAuth ユーザー対マシン (U2M) 認証

ODBC ドライバー 2.8.2 以降では、Azure Databricks ユーザーの OAuth ユーザー対マシン (U2M) 認証がサポートされています。 これは、OAuth 2.0 ''ブラウザーベース'' の認証とも呼ばれます。

OAuth U2M または OAuth 2.0 ブラウザーベースの認証には、前提条件はありません。 OAuth 2.0 トークンの既定の有効期間は 1 時間です。 OAuth U2M または OAuth 2.0 ブラウザー ベースの認証では、期限切れの OAuth 2.0 トークンが自動的に更新されます。

注記

OAuth U2M または OAuth 2.0 ブラウザーベースの認証は、ローカルで実行されるアプリケーションでのみ機能します。 サーバー ベースまたはクラウドベースのアプリケーションでは機能しません。

OAuth ユーザー対マシン (U2M) または OAuth 2.0 ブラウザーベースの認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 価値
AuthMech 11
Auth_Flow 2
PWD 任意のパスワード。 ドライバーでは、更新トークンの暗号化にこのキーが使用されます。
Auth_Client_ID (任意) databricks-sql-odbc (既定値)。 使用可能なすべてのアプリケーションについては、 アカウント コンソールの「アプリ接続の設定」を参照してください。
Auth_Scope (任意) sql offline_access (既定)
OAuth2RedirectUrlPort (任意) 8020 (既定)

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=2
PWD=<password>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=2;
PWD=<password>

詳細については、Databricks ODBC ドライバー ガイド (HTML または PDF) のブラウザー ベースのセクションを参照してください。

Microsoft Entra ID OAuth ユーザー対マシン (U2M) 認証

ODBC ドライバー 2.8.2 以降では、Azure Databricks ユーザーの Microsoft Entra ID OAuth ユーザー対マシン (U2M) 認証がサポートされています。

Microsoft Entra ID OAuth ユーザー対マシン (U2M) を使用するには、OAuth クライアント (アプリケーション) を Microsoft Entra ID に登録する必要があります。「 Microsoft Entra ID にクライアント アプリケーションを登録する」を参照してください。

Microsoft Entra ID OAuth ユーザー対マシン (U2M) を使って認証を行うには、次の構成をコンピューティングの設定と、すべての特殊または高度なドライバー機能の設定に追加します。

設定 価値
AuthMech 11
Auth_Flow 2
PWD 任意のパスワード。 ドライバーは、更新トークンの暗号化にこのキーを使います
Auth_Client_ID Azure アプリケーションのアプリケーション (クライアント) ID
Auth_Scope 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/user_impersonation offline_access
OIDCDiscoveryEndpoint https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration
OAuth2RedirectUrlPort Azure アプリケーションのリダイレクト ポート

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=1
Auth_Client_ID=<application-id-azure-application>
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/user_impersonation offline_access
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration
OAuth2RedirectUrlPort=<redirect port of the Azure application>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=1;
Auth_Client_ID=<application-id-azure-application>;
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/user_impersonation offline_access;
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration;
OAuth2RedirectUrlPort=<redirect port of the Azure application>;

OAuth マシン間 (M2M) 認証

ODBC ドライバーは、Azure Databricks サービス プリンシパルの OAuth マシン間 (M2M) 認証をサポートしています。 これは、OAuth 2.0 ''クライアント資格情報'' 認証とも呼ばれます。

OAuth M2M または OAuth 2.0 クライアント資格情報認証を構成するには、次のようにします。

  1. Azure Databricks ワークスペースで Azure Databricks サービス プリンシパルを作成し、そのサービス プリンシパルの OAuth シークレットを作成します。

    サービス プリンシパルとその OAuth シークレットを作成するには、「 OAuth を使用して Azure Databricks へのサービス プリンシパル アクセスを承認する」を参照してください。 サービス プリンシパルの UUID または アプリケーション ID の値と、サービス プリンシパルの OAuth シークレットのシークレット 値をメモしておきます。

  2. サービス プリンシパルにクラスターまたはウェアハウスへのアクセス権を付与します。 「コンピューティングのアクセス許可」または「SQL ウェアハウスを管理する」を参照してください。

OAuth マシン間 (M2M) または OAuth 2.0 クライアント資格情報認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 価値
AuthMech 11
Auth_Flow 1
Auth_Client_ID サービス プリンシパルの UUID/アプリケーション ID 値。
Auth_Client_Secret サービス プリンシパルの OAuth シークレット 値。
Auth_Scope (任意) all-apis (既定)

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=1
Auth_Client_ID=<service-principal-application-ID>
Auth_Client_Secret=<service-principal-secret>
Auth_Scope=all-apis

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=1;
Auth_Client_ID=<service-principal-application-ID>;
Auth_Client_Secret=<service-principal-secret>;
Auth_Scope=all-apis

詳細については、Databricks ODBC ドライバー ガイド (HTML または PDF) の「クライアント資格情報」セクションを参照してください。

Microsoft Entra ID OAuth マシン間 (M2M) 認証

ODBC ドライバー 2.8.2 以降では、Microsoft Entra ID サービス プリンシパルに対する Microsoft Entra ID OAuth マシン間 (M2M) 認証がサポートされています。

Entra ID OAuth マシン間 (M2M) 認証を構成するには、次のようにします。

  1. Microsoft Entra ID 管理サービス プリンシパルを作成します。 これを行うには、 サービス プリンシパルに関する説明を参照してください。
  2. サービス プリンシパルにクラスターまたはウェアハウスへのアクセス権を付与します。 「コンピューティングのアクセス許可」または「SQL ウェアハウスを管理する」を参照してください。

Entra ID OAuth マシン間 (M2M) を使って認証を行うには、次の構成をコンピューティングの設定と、すべての特殊または高度なドライバー機能の設定に追加します。

設定 価値
AuthMech 11
Auth_Flow 1
Auth_Client_ID Entra ID のサービス プリンシパルのアプリケーション ID
Auth_Client_Secret Entra ID のサービス プリンシパルのクライアント シークレット。 これは、ユーザーが Microsoft Entra ID の [証明書とシークレット] で作成するクライアント シークレットです。
Auth_Scope 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default
OIDCDiscoveryEndpoint https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=1
Auth_Client_ID=<entra-id-service-principal-application-ID>
Auth_Client_Secret=<entra-id-service-principal-client-secret>
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=1;
Auth_Client_ID=<entra-id-service-principal-application-ID>>;
Auth_Client_Secret=<entra-id-service-principal-client-secret>;
Auth_Scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d/.default;
OIDCDiscoveryEndpoint=https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration

Azure マネージド ID 認証

ODBC ドライバー 2.7.7 以降では、Azure マネージド ID 認証がサポートされています。 この認証方法は、Azure VM などのマネージド ID をサポートする Azure リソースを操作する場合に使用します。

Azure マネージド ID 認証を使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 価値
AuthMech 11
Auth_Flow 3
Auth_Client_ID Azure マネージド ID の識別子。
Azure_workspace_resource_id Azure Databricks ワークスペースの Azure リソース ID。
この ID を取得するには、Azure Databricks ワークスペースの上部のナビゲーション バーでユーザー名をクリックし、
Azure Portal。 表示された Azure Databricks ワークスペース リソース ページで、サイドバーの [設定] の下にある [プロパティ] をクリックします。 ID は [Essentials] の下の [ID] にあります。

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=11
Auth_Flow=3
Auth_Client_ID=<azure-managed-identity-ID>
Azure_workspace_resource_id=<azure-workspace-resource-ID>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=11;
Auth_Flow=3;
Auth_Client_ID=<azure-managed-identity-ID>;
Azure_workspace_resource_id=<azure-workspace-resource-ID>

Azure Databricks 個人用アクセス トークン (レガシ)

Azure Databricks 個人用アクセス トークンを作成するには、「 ワークスペース ユーザーの個人用アクセス トークンを作成する」の手順に従います。

Azure Databricks 個人用アクセス トークンを使って認証するには、次の構成をコンピューティング設定と特殊または高度なドライバー機能設定に追加します。

設定 価値
AuthMech 3
UID token
PWD ワークスペースのユーザー向けDatabricksの個人アクセストークン

Windows 以外のシステム用の DSN を作成するには、次の形式を使います。

[Databricks]
Driver=<path-to-driver>
Host=<server-hostname>
Port=443
HTTPPath=<http-path>
SSL=1
ThriftTransport=2
AuthMech=3
UID=token
PWD=<personal-access-token>

DSN を使用しない接続文字列を作成するには、次の形式を使います。 この例には、読みやすくするための改行が含まれています。 接続文字列に次の改行を含めないでください。

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
ThriftTransport=2;
AuthMech=3;
UID=token;
PWD=<personal-access-token>