分享方式:


Databricks ODBC 驅動程式的驗證設定

本文說明如何設定 Databricks ODBC 驅動程式的 Azure Databricks 驗證設定。

Databricks ODBC 驅動程序支援下列 Azure Databricks 驗證類型:

Azure Databricks 個人存取權杖

若要建立 Azure Databricks 個人存取權杖,請執行下列動作:

  1. 在 Azure Databricks 工作區中,按一下頂端列中的 Azure Databricks 使用者名稱,然後從下拉式清單中選取 [設定]
  2. 按一下 [開發人員]
  3. 在 [存取權杖] 旁,按一下 [管理]
  4. 按一下 產生新權杖
  5. (選擇性) 輸入可協助您之後識別此權杖的註解,並變更權杖的預設存留期 90 天。 若要建立沒有存留期的權杖 (不建議),請將 [存留期 (天)] 方塊留空 (空白)。
  6. 按一下 產生
  7. 將顯示的權杖複製到安全位置,然後選取 [完成]

注意

請務必將複製的權杖儲存在安全位置。 請勿與其他人共用複製的權杖。 如果您遺失複製的權杖,就無法重新產生完全相同的權杖。 相反地,您必須重複此程序來建立新的權杖。 如果您遺失複製的權杖,或您認為權杖已遭入侵,Databricks 強烈建議您按一下 [存取權杖] 頁面上權杖旁邊的垃圾桶 (撤銷) 圖示,立即從工作區中刪除該權杖。

注意:如果您無法在工作區中建立或使用 PAT,這可能是因為您的工作區系統管理員已停用權杖,或未授與您建立或使用權杖的權限。 請諮詢您的工作區系統管理員或參閱下列主題:

若要使用 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>

Microsoft Entra ID 權杖

ODBC 驅動程式 2.6.15 和更新版本支援 Azure Databricks 使用者或 Microsoft Entra ID 服務主體的 Microsoft Entra ID 權杖。

若要建立 Microsoft Entra ID 存取權杖,請按照下列步驟操作:

Microsoft Entra ID 存取權杖的預設存留期約為 1 小時。 您可以透過執行重新整理 Microsoft Entra ID 存取權杖中的程式碼,以程式設計方式重新整理現有工作階段的存取權杖,而不會中斷連線。 如需關於如何重新整理權杖的指示,請參閱 Databricks ODBC 驅動程式指南中的 Configuring Authentication on Windows > Providing a New Access Token 一節。

若要使用 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 驅動程式指南中的 Token Pass-through 章節。

OAuth 2.0 權杖

ODBC 驅動程式 2.7.5 和更新版本支援 Microsoft Entra ID 服務主體的 OAuth 2.0 權杖。 這也稱為 OAuth 2.0 權杖傳遞驗證。

重要

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 驅動程式指南中的 Token Pass-through 章節。

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 (預設值) 您可以在 Databricks 帳戶主控台的 [應用程式連線設定] 下找到所有適用的應用程式,請參閱使用 Azure Databricks UI 啟用自訂 OAuth 應用程式
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 驅動程式指南中的 Browser Based 章節。

Microsoft Entra ID OAuth 使用者對機器 (U2M) 驗證

ODBC 驅動程式 2.8.2 和更新版本支援 Azure Databricks 使用者的 Microsoft Entra ID OAuth 使用者對機器 (U2M) 驗證

若要使用 Microsoft Entra ID OAuth 使用者對機器 (U2M),必須在 Microsoft Entra ID 中註冊 OAuth 用戶端 (應用程式),請參閱指示

若要使用 Microsoft Entra ID OAuth 使用者對機器 (U2M) 進行驗證,請將下列組態新增至計算設定,以及任何特殊或進階驅動程式功能設定

設定
AuthMech 11
Auth_Flow 2
PWD 您選擇的密碼。 驅動程式會使用此金鑰進行重新整理權杖加密
Auth_Client_ID Azure 應用程式的應用程式 (用戶端) 識別碼
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 (OAuth M2M) 透過服務主體對 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 驅動程式指南中的 Client Credentials 章節。

Microsoft Entra ID OAuth 機器對機器 (M2M) 驗證

ODBC 驅動程式 2.8.2 和更新版本支援 Microsoft Entra ID 服務主體的 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 受控識別驗證

ODBC 驅動程式 2.7.7 和更新版本支援 Azure 受控身分識別驗證,其使用 Azure 資源受控識別 (先前稱為受控服務識別 (MSI)) 來向 Azure Databricks 進行驗證。 使用支援受控識別的 Azure 資源,例如 Azure VM 時,以程式設計方式呼叫 Azure Databricks 工作區作業會使用這些受控識別。

若要使用 Azure 受控識別驗證進行驗證,請將下列組態新增至計算設定,以及任何特殊或進階驅動程式功能設定

設定
AuthMech 11
Auth_Flow 3
Auth_Client_ID Azure 受控識別 ID。
Azure_workspace_resource_id Azure Databricks 工作區的 Azure 資源識別碼。

若要取得此 ID,請在 Azure Databricks 工作區的頂端導覽列中,按一下您的使用者名稱,然後按一下
Azure 入口網站。 在出現的 [Azure Databricks 工作區資源] 頁面上,按一下側邊欄中的 [設定] 底下的 [屬性]。 該 ID 位於 [基本資訊] 底下的 [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>