Azure Databricks 个人访问令牌(PAT)允许在工作区级别对资源和 API 进行身份验证。 可以将它们存储在环境变量或 Azure Databricks 配置文件中。 每个 PAT 仅对一个工作区有效,用户可以为每个工作区创建最多 600 个 PAT。 Azure Databricks 自动撤销尚未使用 90 天的 PAT。
重要
用户名和密码身份验证(无令牌)于 2024 年 7 月 10 日结束。 Databricks 强烈建议使用 OAuth 而不是 PAT 进行身份验证,因为 OAuth 提供更强的安全性。 若要了解如何使用 OAuth 通过 Databricks 用户帐户进行身份验证,请参阅 使用 OAuth 授权用户访问 Azure Databricks。
无法使用个人访问令牌自动执行 Azure Databricks 帐户级 功能。 请改用 Azure Databricks 帐户管理员的 Microsoft Entra ID 令牌。 Azure Databricks 帐户管理员可以是用户或服务主体。 有关详细信息,请参阅:
为工作区用户创建个人访问令牌
若要为 Azure Databricks 工作区用户创建个人访问令牌,请执行以下作:
- 在 Azure Databricks 工作区中,单击顶部栏中的用户名,然后选择“设置”。 
- 单击“开发人员”。 
- 在“访问令牌”旁边,单击“管理”。 
- 单击“生成新令牌”。 
- 输入有助于将来标识此令牌的注释。 
- 设置令牌的生存期(以天为单位)。 请参阅设置新个人访问令牌的最大生存期。 
- 单击“生成” 。 
- 将显示的令牌复制到安全位置,然后单击“ 完成”。 安全地保存令牌,不共享该令牌。 如果丢失该令牌,则必须创建新的令牌。 
如果无法创建或使用令牌,则工作区管理员可能已禁用令牌或未授予你权限。 请与工作区管理员联系,或参阅以下内容:
为服务主体创建个人访问令牌
服务主体可以自行创建个人访问令牌。
- 运行以下命令以生成访问令牌: - databricks tokens create --lifetime-seconds <lifetime-seconds> -p <profile-name>- 请替换以下值: - 
              <lifetime-seconds>:令牌生存期(以秒为单位),例如 86400(1 天)。 默认为工作区最大值(通常为 730 天)。
- 
              <profile-name>:包含身份验证信息的配置文件。 默认为DEFAULT。
 
- 
              
- 从响应中复制 - token_value,这就是你的服务主体的访问令牌。 安全地保存令牌,不共享该令牌。 如果丢失该令牌,则必须创建新的令牌。- 如果无法创建或使用令牌,则工作区管理员可能已禁用令牌或未授予你权限。 请与工作区管理员联系,或参阅以下内容: 
执行个人访问令牌身份验证
若要配置 Azure Databricks 个人访问令牌身份验证,请设置以下关联的环境变量、 .databrickscfg 字段、Terraform 字段或 Config 字段:
- Azure Databricks 主机,指定为目标 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn。
- Azure Databricks 用户帐户的 Azure Databricks 个人访问令牌。
若要执行 Azure Databricks 个人访问令牌身份验证,请根据相关的工具或 SDK 在代码中集成以下内容:
环境
若要对工具或 SDK 的特定 Azure Databricks 身份验证类型使用环境变量,请参阅 授权访问 Azure Databricks 资源 或工具或 SDK 的文档。 另请参阅 环境变量和字段,了解统一身份验证 和 身份验证方法优先级。
设置以下环境变量:
- 
              DATABRICKS_HOST,设置为 Azure Databricks 每工作区 URL,例如https://adb-1234567890123456.7.databricks.azure.cn。
- 
              DATABRICKS_TOKEN,设置为令牌字符串。
配置文件
在  文件中使用以下字段创建或标识 Azure Databricks .databrickscfg。 如果创建配置文件,请将占位符替换为相应值。 若要将配置文件与工具或 SDK 配合使用,请参阅 授权访问 Azure Databricks 资源 或工具或 SDK 的文档。 另请参阅 环境变量和字段,了解统一身份验证 和 身份验证方法优先级。
在 .databrickscfg 文件中设置以下值。 在本例中,主机是 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn:
[<some-unique-configuration-profile-name>]
host  = <workspace-url>
token = <token>
可以使用 Databricks CLI 来设置这些值,而不是手动设置这些值:
注意
以下过程将使用 Databricks CLI 创建名为  的 Azure Databricks DEFAULT。 如果已具有 DEFAULT 配置文件,此过程将覆盖现有的 DEFAULT 配置文件。
要检查是否已有 DEFAULT 配置文件,并查看此配置文件的设置(如果存在),请使用 Databricks CLI 运行命令 databricks auth env --profile DEFAULT。
要使用除 DEFAULT 以外的名称创建配置文件,请将以下 DEFAULT 命令中 --profile DEFAULT 的 databricks configure 部分替换为其他配置文件名称。
- 使用 Databricks CLI 创建名为 的 Azure Databricks - DEFAULT,它使用 Azure Databricks 个人访问令牌身份验证。 为此,请运行以下命令:- databricks configure --profile DEFAULT
- 对于提示Databricks 主机,请输入 Azure Databricks 按工作区 URL,例如 - https://adb-1234567890123456.7.databricks.azure.cn。
- 对于提示个人访问令牌,请输入工作区的 Azure Databricks 个人访问令牌。 
CLI
对于 Databricks CLI,请运行 databricks configure 命令。 在出现提示时,输入以下设置:
- Azure Databricks 主机,指定为目标 Azure Databricks 每工作区 URL,例如 https://adb-1234567890123456.7.databricks.azure.cn。
- Azure Databricks 用户帐户的 Azure Databricks 个人访问令牌。
有关详细信息,请参阅个人访问令牌身份验证(已弃用)。
连接
注意
以下 Databricks Connect 版本支持 Azure Databricks 个人访问令牌身份验证:
- 对于 Python,适用于 Databricks Runtime 13.3 LTS 及更高版本的 Databricks Connect。
- 对于 Scala,为 Databricks Connect for Databricks Runtime 13.3 LTS 及更高版本。
对于 Databricks Connect,请使用 Databricks CLI 在您的 .databrickscfg 文件中设置适用于 Azure Databricks 的 工作区级别操作的值,如配置文件部分所述。
以下过程创建一个名为 DEFAULT 的 Azure Databricks 配置文件,该文件将覆盖任何现有的 DEFAULT 配置文件。 若要检查 DEFAULT 配置文件是否存在,请运行 databricks auth env --profile DEFAULT。 如果已经存在,请使用其他配置文件名称。
- 运行以下命令,创建一个名为使用个人访问令牌身份验证的 - DEFAULTAzure Databricks 配置文件。- databricks configure --configure-cluster --profile DEFAULT
- 对于提示Databricks 主机,请输入 Azure Databricks 按工作区 URL,例如 - https://adb-1234567890123456.7.databricks.azure.cn。
- 对于提示 个人访问令牌,请输入工作区的个人访问令牌。 
- 在可用群集列表中,选择工作区中的目标 Azure Databricks 群集。 可以键入群集显示名称的任何部分来筛选可用群集的列表。 
使用 Azure Databricks REST API 以颁发个人访问令牌
Azure Databricks 提供 REST 端点 /api/2.0/token/create,以颁发 PAT。 请参阅创建用户令牌,以了解 API 详细信息。
在以下示例中,设置以下值:
- 
              <databricks-instance>:Databricks 工作区 URL。 例如,dbc-abcd1234-5678.cloud.databricks.com。
- 
              <your-existing-access-token>:有权创建新令牌的现有有效 PAT(字符串)。
- 
              <lifetime-seconds>:令牌的生存期(以秒为单位)。
curl -X POST https://<databricks-instance>/api/2.0/token/create \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
  "lifetime_seconds": <lifetime-seconds>
}'
如果成功,会导致响应有效负载类似于:
{
  "access_token": "<your-newly-issued-pat>",
  "token_type": "Bearer",
  "expires_in": <the-duration-of-the-new-pat>
}
对 Databricks REST API 的后续调用的授权标头中提供响应中的新令牌。 例如:
# This example uses a simple GET. For POST or other REST verbs, you may need to provide additional parameters.
curl -X GET "https://<databricks-instance>/api/2.0/<path-to-endpoint>" \
     -H "Authorization: Bearer <your-new-pat>"
import requests
headers = {
    'Authorization': 'Bearer <your-new-pat>'
}
# This example is for an HTTP GET operation.
response = requests.get('https://<databricks-instance>/api/2.0/<path-to-endpoint>', headers=headers)