メインコンテンツまでスキップ

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

注記

このページは、Simba JDBC Driver(レガシー)のバージョン3未満のバージョンに適用されます。Databricksは、JDBC接続にはDatabricks JDBC Driverへの移行を強く推奨します。これには、 Unity Catalogメトリクス ビューのサポート、複数のSQLステートメントにまたがるトランザクション、ストアド プロシージャ、大量の結果の取得の高速化、クライアント テレメトリの組み込みなどの改善が含まれています。

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

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

Databricks 個人用アクセス トークン​

注記

個人用アクセス トークンは、テスト シナリオ用に提供されます。 Databricks では、本番運用シナリオに対して、より安全な認証の種類を推奨しています。

Databricksの個人アクセス ノートを作成するには、 「ワークスペース ユーザー向けの個人アクセス ノートを作成する」のステップに従います。

PATを使用して、一般的な構成プロパティと機密性の高い資格情報プロパティが埋め込まれたJDBC接続URLの認証を構成するには、次のようにします。

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=3;UID=token;PWD=<personal-access-token>

一般的な構成プロパティと機密性の高い資格情報プロパティが JDBC 接続 URL の外部に設定されている Java コードの場合:

Java
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "3");
p.put("UID", "token");
p.put("PWD", "<personal-access-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...

OAuth 2.0 トークン​

ドライバーJDBC 2.6.36 以降では、OAuthDatabricks ユーザーまたはサービスプリンシパルの 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 トークンを生成するには、このプロセスを繰り返します。
  • サービスプリンシパルについては、「 M2M アクセストークン OAuth 手動生成」を参照してください。 サービスプリンシパルの OAuth access_token 値をメモします。 OAuth 2.0 トークンのデフォルトの有効期間は 1 時間です。新しい OAuth 2.0 トークンを生成するには、このプロセスを繰り返します。

OAuth 2.0 トークン パススルー認証を使用して認証するには、次の構成を設定します。

一般的な構成プロパティと機密性の高い資格情報プロパティが埋め込まれた JDBC 接続 URL の場合:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>

一般的な構成プロパティと機密性の高い資格情報プロパティが JDBC 接続 URL の外部に設定されている Java コードの場合:

Java
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...

詳細については、 Driver Guide (HTML またはPDF ) の「 パスワード パススルー」 セクションを参照してください。DatabricksJDBC

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

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

注記

JDBC 2.6.40.1071 は、プライベートリンクワークスペースに M2M を使用して接続することがサポートされていない古いバージョンの問題を解決します。

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 ブラウザーベースの認証を使用して認証するには、次の構成を設定します。

一般的な構成プロパティと機密性の高い資格情報プロパティが埋め込まれた JDBC 接続 URL の場合:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0

一般的な構成プロパティと機密性の高い資格情報プロパティが JDBC 接続 URL の外部に設定されている Java コードの場合:

Java
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2");
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
  • 上記の URL または Java コードで、 <passphrase> を任意のパスフレーズに置き換えます。 ドライバーは、更新トークンの暗号化にこのキーを使用します。
  • <server-hostname>と<http-path>の値を取得するには、 「 Databricks JDBC Driver (Simba) のコンピュート設定」を参照してください。

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

OAuth マシン間 (M2M) 認証​

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

注記

JDBC 2.6.40.1071 は、プライベートリンクワークスペースに M2M を使用して接続することがサポートされていない古いバージョンの問題を解決します。

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

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

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

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

OAuth マシン間 (M2M) または OAuth 2.0 クライアント資格情報認証を使用して認証するには、次の構成を設定します。

一般的な構成プロパティと機密性の高い資格情報プロパティが埋め込まれた JDBC 接続 URL の場合:

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>

一般的な構成プロパティと機密性の高い資格情報プロパティが JDBC 接続 URL の外部に設定されている Java コードの場合:

Java
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
  • 上記の URL または Java コードで、次のプレースホルダーを置き換えます。
    • <service-principal-application-id> をサービスプリンシパルの UUID / Application ID 値に置き換えます。
    • <service-principal-oauth-secret> をサービスプリンシパルの OAuth Secret 値に置き換えます。
    • <server-hostname>と<http-path>の値を取得するには、 「 Databricks JDBC Driver (Simba) のコンピュート設定」を参照してください。

詳細については、『 ドライバー ガイド』 (HTML またはPDF ) の 「M2M ベース認証の使用」 セクションを参照してください。DatabricksJDBC