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

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

Databricks ODBC ドライバーでは、次の Databricks 認証の種類がサポートされています。

Databricks personal アクセストークン

Databricks 個人用アクセストークンを作成するには、次の操作を行います。

  1. Databricks ワークスペースで、上部のバーにある Databricks ユーザー名をクリックし、ドロップダウンから[設定]を選択します。

  2. [ 開発者] をクリックします。

  3. [アクセストークン] の横にある [管理] をクリックします。

  4. [ 新しいトークンの生成] をクリックします。

  5. (任意)今後このトークンを識別するのに役立つコメントを入力し、トークンのデフォルトの有効期間である90日を変更します。有効期間のないトークンを作成するには(非推奨)、[有効期間 (日) ] ボックスを空白のままにしてください。

  6. [生成] をクリックします。

  7. 表示されたトークンを安全な場所にコピーし、[完了] をクリックします。

注:

コピーしたトークンは、必ず安全な場所に保存してください。 コピーしたトークンを他のユーザーと共有しないでください。 コピーしたトークンを紛失した場合、まったく同じトークンを再生成することはできません。 代わりに、この手順を繰り返して新しいトークンを作成する必要があります。 コピーしたトークンを紛失した場合、またはトークンが侵害されたと思われる場合は、アクセストークン ページでトークンの横にあるごみ箱 (取り消し) アイコンをクリックして、ワークスペースからそのトークンをすぐに削除することを強くお勧めします。

ワークスペースでトークンを作成または使用できない場合は、ワークスペース管理者がトークンを無効にしたか、トークンを作成または使用する権限を与えていないことが原因である可能性があります。ワークスペース管理者に問い合わせるか、以下をご覧ください。

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>

Databricks のユーザー名とパスワード

Databricks のユーザー名とパスワードによる認証は、Databricks 基本 認証とも呼ばれます。

ユーザー名とパスワードによる認証は、シングルサインオン が無効になっている場合にのみ可能です。

Databricks のユーザー名とパスワードを使用して認証するには、 コンピュート設定 と、特殊または高度な ドライバー機能の設定に次の構成を追加します。

設定

AuthMech

3

UID

ユーザー名。

PWD

パスワード。

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

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

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

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

OAuth 2.0 トークン

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

トークン・パススルー認証用の OAuth 2.0 トークンを作成するには、以下の操作を行います。

  • ユーザーの場合、 Databricks CLI を使用して OAuth U2M プロセスを開始して OAuth 2.0 トークンを生成し、 databricks auth token コマンドを実行して生成された OAuth 2.0 トークンを取得できます。 OAuthユーザーからマシン(U2M)への認証を参照してください。OAuth 2.0 トークンのデフォルトの有効期間は 1 時間です。 新しい OAuth 2.0 トークンを生成するには、このプロセスを繰り返します。

  • サービス プリンシパルの場合は、 「OAuth マシン間 (M2M) 認証のためのアクセス ノートを手動で生成して使用する」のステップ 1 ~ 3 に従います。 サービスプリンシパルの OAuth access_token値をメモします。 OAuth 2.0 トークンのデフォルトの有効期間は 1 時間です。 新しい OAuth 2.0 トークンを生成するには、このプロセスを繰り返します。

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

設定

AuthMech

11

Auth_Flow

0

Auth_AccessToken

OAuth 2.0 トークン。

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=<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=<oauth-token>

詳細については、「Databricks ODBC ドライバー ガイド」のToken Pass-throughセクションを参照してください。

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

ODBC ドライバー 2.7.5 以降では、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 user-to-machine (U2M) または OAuth 2.0 ブラウザーベースの認証を使用して認証するには、 コンピュート 設定と、特殊または高度な ドライバー機能設定に次の構成を追加します。

構成

AuthMech

11

Auth_Flow

2

PWD

任意のパスワード。 ドライバーは、更新トークンの暗号化にこのキーを使用します。

OAuth2ClientId (任意)

power-bi,tableau-desktop,databricks-cli, databricks-sql-python,databricks-sql-jdbc, databricks-sql-odbc,databricks-dbt-adapter, databricks-sql-connector (デフォルト)

Auth_Scope (任意)

sql,offline_access (デフォルト)

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 ドライバー ガイド」のBrowser Basedセクションを参照してください。

OAuthマシン間(M2M)認証

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

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

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

    サービスプリンシパルとその OAuth シークレットを作成するには、 「OAuth マシン間 (M2M) 認証」を参照してください。 サービスプリンシパルのUUIDまたはアプリケーション ID の値と、サービスプリンシパルの OAuth シークレットのシークレット値をメモします。

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

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

設定

AuthMech

11

Auth_Flow

1

Auth_Client_Id

サービスプリンシパルの UUID/アプリケーション ID 値。

Auth_Client_Secret

サービスプリンシパルのOAuthシークレット値。

OAuth2ClientId (任意)

power-bi,tableau-desktop,databricks-cli, databricks-sql-python,databricks-sql-jdbc, databricks-sql-odbc,databricks-dbt-adapter, databricks-sql-connector (デフォルト)

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 ドライバー ガイド」のClient Credentialsセクションを参照してください。