You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API修改Azure Databricks SQL查询权限?

如何通过编程修改Azure Databricks SQL查询权限

1. 是否可以通过编程方式修改Azure Databricks的查询权限?

可以,Azure Databricks提供了专门的Databricks SQL权限API来管理SQL查询的访问权限,支持通过编程方式修改(包括分配CAN_MANAGE权限)。

2. 具体操作方法

需要使用Databricks SQL权限API的set端点,以下是详细步骤和示例代码:

核心前提

  • 操作使用的个人访问令牌(PAT)必须拥有目标查询的CAN_MANAGE权限,或者令牌持有者是工作区管理员。
  • 权限层级为累积制:CAN_MANAGE包含CAN_RUN和CAN_VIEW权限,无需重复配置。

示例代码(Python)

import requests
import json

# 替换为你的实际信息
DATABRICKS_WORKSPACE_HOST = "xxx.azuredatabricks.net"
TARGET_QUERY_ID = "你的查询ID"
PERSONAL_ACCESS_TOKEN = "你的PAT令牌"

# 构建请求头
headers = {
    "Authorization": f"Bearer {PERSONAL_ACCESS_TOKEN}",
    "Content-Type": "application/json"
}

# 权限配置:可同时添加多个用户/组
permission_payload = {
    "access_control_list": [
        # 给指定用户分配CAN_MANAGE权限
        {
            "user_name": "target-user@example.com",
            "permission_level": "CAN_MANAGE"
        },
        # 可选:给指定组分配权限
        # {
        #     "group_name": "data-analyst-group",
        #     "permission_level": "CAN_RUN"
        # }
    ]
}

# 构建API请求URL
api_url = f"https://{DATABRICKS_WORKSPACE_HOST}/api/2.0/sql/permissions/queries/{TARGET_QUERY_ID}"

# 发送POST请求设置权限
response = requests.post(api_url, headers=headers, data=json.dumps(permission_payload))

# 处理响应
if response.status_code == 200:
    print("查询权限设置成功")
else:
    print(f"权限设置失败,错误信息:{response.text}")

关键注意事项

  • set端点会覆盖当前查询的所有权限配置,如果需要保留原有权限,需先调用get端点(GET /api/2.0/sql/permissions/queries/{query_id})获取现有ACL,将新权限项合并后再传入set请求。
  • 通用权限API(/api/2.0/permissions)不支持SQL查询对象,必须使用专门的Databricks SQL权限API路径。

内容的提问来源于stack exchange,提问作者followingell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 07:55:00