Databricks ODBC 驱动程序的身份验证设置

本文介绍如何为 Databricks ODBC 驱动程序配置 Azure Databricks 身份验证设置。

本文假设你已经收集了以下要添加到身份验证设置的其他设置,如本文所述:

要为 Databricks ODBC 驱动程序配置 Azure Databricks 连接,必须将计算资源设置、任何驱动程序功能设置以及以下身份验证设置合并到 ODBC 数据源名称 (DSN) 或无 DSN 连接字符串中。

使用 DSN 还是使用无 DSN 连接字符串取决于目标应用、工具、客户端、SDK 或 API 的要求。 对于每个受支持的 Azure Databricks 身份验证类型,本文提供了 DSN 和无 DSN 连接字符串的示例。

Databricks ODBC 驱动程序支持以下 Azure Databricks 身份验证类型:

Azure Databricks 个人访问令牌

要创建 Azure Databricks 个人访问令牌,请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击顶部栏中 Azure Databricks 用户名,然后从下拉列表中选择“用户设置”。
  2. 单击“开发人员”。
  3. 在“访问令牌”旁边,单击“管理”。
  4. 单击“生成新令牌”。
  5. (可选)输入有助于将来识别此令牌的注释,并将令牌的默认生存期更改为 90 天。 若要创建没有生存期的令牌(不建议),请将“生存期(天)”框留空(保留空白)。
  6. 单击“生成” 。
  7. 将显示的令牌复制到安全位置,然后单击“完成”。

注意

请务必将复制的令牌保存到安全的位置。 请勿与他人共享复制的令牌。 如果丢失了复制的令牌,你将无法重新生成完全相同的令牌, 而必须重复此过程来创建新令牌。 如果丢失了复制的令牌,或者认为令牌已泄露,Databricks 强烈建议通过单击“访问令牌”页上令牌旁边的垃圾桶(撤销)图标立即从工作区中删除该令牌。

如果你无法在工作区中创建或使用令牌,可能是因为工作区管理员已禁用令牌或未授予你创建或使用令牌的权限。 请与工作区管理员联系,或参阅以下内容:

要使用 Azure Databricks 个人访问令牌进行身份验证,请将以下配置添加到计算设置和任何特殊或高级驱动程序功能设置

设置 “值”
AuthMech 3
UID token
PWD 工作区用户的 Databricks 个人访问令牌。

要创建 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>

OAuth 用户到计算机 (U2M) 身份验证

ODBC 驱动程序 2.7.5 及更高版本支持对 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 选择的密码。 驱动程序使用此密钥进行刷新令牌加密。
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 部分。

Azure 托管标识身份验证

ODBC 驱动程序 2.7.7 及更高版本支持 Azure 托管标识身份验证,该验证使用 Azure 资源托管标识(以前称为托管服务标识 (MSI))与 Azure Databricks 进行身份验证。 对 Azure Databricks 工作区操作的编程调用在使用支持托管标识的 Azure 资源(如 Azure VM)时使用这些托管标识。

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