Databricks ODBC 驱动程序的身份验证设置
本文介绍如何为 Databricks ODBC 驱动程序配置 Azure Databricks 身份验证设置。
Databricks ODBC 驱动程序支持以下 Azure Databricks 身份验证类型:
Azure Databricks 个人访问令牌
要创建 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>
- 要获取
<path-to-driver>
的值,请参阅下载并安装 Databricks ODBC 驱动程序。 - 要获取
<server-hostname>
和<http-path>
的值,请参阅 Databricks ODBC 驱动程序的计算设置。 - 还可以添加特殊或高级驱动程序功能设置。
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>
- 要获取
<path-to-driver>
的值,请参阅下载并安装 Databricks ODBC 驱动程序。 - 要获取
<server-hostname>
和<http-path>
的值,请参阅 Databricks ODBC 驱动程序的计算设置。 - 还可以添加特殊或高级驱动程序功能设置。
有关详细信息,请参阅 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>
- 要获取
<path-to-driver>
的值,请参阅下载并安装 Databricks ODBC 驱动程序。 - 要获取
<server-hostname>
和<http-path>
的值,请参阅 Databricks ODBC 驱动程序的计算设置。 - 还可以添加特殊或高级驱动程序功能设置。
有关详细信息,请参阅 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) 进行身份验证,请将以下配置添加到计算设置和任何特殊或高级驱动程序功能设置:
设置 | “值” |
---|---|
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.chinacloudapi.cn/<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.chinacloudapi.cn/<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.chinacloudapi.cn/<azureTenantId>/v2.0/.well-known/openid-configuration;
OAuth2RedirectUrlPort=<redirect port of the Azure application>;
- 要获取
<path-to-driver>
的值,请参阅下载并安装 Databricks ODBC 驱动程序。 - 要获取
<server-hostname>
和<http-path>
的值,请参阅 Databricks ODBC 驱动程序的计算设置。 - 还可以添加特殊或高级驱动程序功能设置。
OAuth 计算机到计算机 (M2M) 身份验证
ODBC 驱动程序支持针对 Azure Databricks 服务主体的 OAuth 计算机到计算机 (M2M) 身份验证。 这也称为 OAuth 2.0 客户端凭据身份验证。
要配置 OAuth M2M 或 OAuth 2.0 客户端凭据身份验证,请执行以下操作:
在 Azure Databricks 工作区中创建 Azure Databricks 服务主体,并为该服务主体创建 OAuth 机密。
若要创建服务主体及其 OAuth 机密,请参阅使用 OAuth (OAuth M2M) 通过服务主体对 Azure Databricks 的访问进行身份验证。 记下服务主体的 UUID 或应用程序 ID 值,以及服务主体的 OAuth 机密的机密值。
要使用 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
- 要获取
<path-to-driver>
的值,请参阅下载并安装 Databricks ODBC 驱动程序。 - 要获取
<server-hostname>
和<http-path>
的值,请参阅 Databricks ODBC 驱动程序的计算设置。 - 还可以添加特殊或高级驱动程序功能设置。
有关详细信息,请参阅 Databricks ODBC 驱动程序指南中的 Client Credentials
部分。
Microsoft Entra ID OAuth 计算机到计算机 (M2M) 身份验证
ODBC 驱动程序 2.8.2 及更高版本支持对 Microsoft Entra ID 服务主体进行 Entra ID OAuth 计算机到计算机 (M2M) 身份验证。
要配置 Entra ID OAuth 计算机到计算机 (M2M) 身份验证,请执行以下操作:
要使用 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.chinacloudapi.cn/<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.chinacloudapi.cn/<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.chinacloudapi.cn/<AzureTenantId>/v2.0/.well-known/openid-configuration
- 要获取
<path-to-driver>
的值,请参阅下载并安装 Databricks ODBC 驱动程序。 - 要获取
<server-hostname>
和<http-path>
的值,请参阅 Databricks ODBC 驱动程序的计算设置。 - 还可以添加特殊或高级驱动程序功能设置。
Azure 托管标识身份验证
ODBC 驱动程序 2.7.7 及更高版本支持 Azure 托管标识身份验证,该验证使用 Azure 资源托管标识(以前称为托管服务标识 (MSI))与 Azure Databricks 进行身份验证。 对 Azure Databricks 工作区操作的编程调用在使用支持托管标识的 Azure 资源(如 Azure VM)时使用这些托管标识。
- 有关托管标识的信息,请参阅什么是 Azure 资源托管标识?。
- 若要了解如何创建托管标识并授予其访问 Azure Databricks 工作区的权限,请参阅为 Azure Databricks 自动化设置和使用 Azure 托管标识身份验证。
要使用 Azure 托管标识身份验证进行身份验证,请将以下配置添加到计算设置以及任何特殊或高级驱动程序功能设置:
设置 | “值” |
---|---|
AuthMech |
11 |
Auth_Flow |
3 |
Auth_Client_ID |
Azure 托管标识的 ID。 |
Azure_workspace_resource_id |
Azure Databricks 工作区的 Azure 资源 ID。 若要获取此 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>
- 要获取
<path-to-driver>
的值,请参阅下载并安装 Databricks ODBC 驱动程序。 - 要获取
<server-hostname>
和<http-path>
的值,请参阅 Databricks ODBC 驱动程序的计算设置。 - 还可以添加特殊或高级驱动程序功能设置。