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

能否在Databricks SQL中用服务主体替代用户ID?如何实现?

在Databricks SQL中使用服务主体替代个人用户ID执行操作

当然可以,服务主体是Databricks专为自动化、非交互式场景设计的身份实体,完全能够替代个人用户执行Databricks SQL的各类操作,包括查询运行、作业调度、权限管理等。以下是具体实现步骤:

一、创建并配置服务主体

  • 登录Databricks控制台,进入管理员设置 → 身份 → 服务主体页面,点击「创建服务主体」,填写名称、描述等基础信息完成创建。
  • 为服务主体分配权限:根据需求,可在工作区级别分配SQL管理员/SQL用户角色,或者针对具体SQL仓库、数据表、目录/架构分配细粒度权限(如SELECT、MODIFY等)。

二、生成服务主体访问令牌

  • 进入目标服务主体的详情页,切换到访问令牌标签,点击「生成新令牌」,设置令牌名称与过期时间,复制生成的令牌(注意:令牌仅显示一次,需妥善保存)。

三、以服务主体身份执行Databricks SQL操作

方式1:通过Databricks SQL CLI操作

安装CLI工具后,执行配置命令绑定服务主体令牌:

databricks configure --token

依次输入Databricks工作区URL、服务主体令牌,完成配置后即可执行SQL命令,示例:

databricks sql query --query "SELECT * FROM my_catalog.my_schema.my_table"

方式2:通过JDBC/ODBC连接操作

在JDBC/ODBC连接字符串中,将服务主体令牌作为认证凭证,示例JDBC URL:

jdbc:databricks://<databricks-instance>:443;HttpPath=/sql/1.0/warehouses/<warehouse-id>;AuthMech=3;UID=token;PWD=<service-principal-token>

应用程序通过该连接串即可以服务主体身份访问并执行SQL操作。

方式3:在Databricks作业中使用服务主体

创建SQL作业时,在「任务」设置里将「运行身份」指定为目标服务主体,作业将自动以该服务主体身份执行SQL任务。

四、验证执行身份

执行以下SQL查询可确认当前操作的身份:

SELECT current_user();

返回结果应为服务主体的应用ID或名称,证明操作是以服务主体身份完成的。

内容的提问来源于stack exchange,提问作者Karthikeyan Rasipalay Durairaj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:40:04