Databricks Apps 用户代授权正式可用,应用可按登录用户权限访问数据
Databricks 宣布 Databricks Apps 的 on-behalf-of-user(OBO)授权正式可用,应用可以以登录用户身份调用受支持的 API,由 Unity Catalog 按该用户既有权限执行行过滤与列掩码,无需在应用代码中重建治理规则。
核心事实
Databricks 在官方博客宣布,Databricks Apps 的 on-behalf-of-user(OBO,用户代授权)能力正式可用(GA)。据该博客说明,应用在调用受支持的 Databricks API 时,可以以已登录用户的身份执行操作:Unity Catalog 会按该用户已有的数据权限进行校验,包括行级过滤与列掩码,API 作用域(scope)则限制应用能以用户名义执行的操作范围。应用自身的服务主体仍可用于读取共享配置、写入应用指标等「应用自有」操作。
背景与影响
博客给出的示例是一个销售洞察助手:它只能使用某位销售人员被授权访问的账户与字段作答,而不需要获得宽泛的 SQL 或工作区管理能力。文章建议按操作选择身份——需要按当前用户权限过滤的查询走用户授权,共享配置读取、后台任务等走应用授权。在作用域上,博客建议只申请与功能匹配的最小范围,例如只读查询使用 sql:restricted-query,而不是更宽的 sql;若涉及 Genie 或 Unity Gateway,则只申请对应作用域。文章强调作用域是能力上限,并非数据访问授权,用户仍需对目标资源具备权限。此外,工作区管理员可在 Settings > Development > Apps 下配置允许的作用域上限,该设置默认包含所有受支持的 API,可收窄。
限制与来源
博客提到,用户首次访问启用用户授权的应用时,Databricks 会提示其同意所申请的 API 作用域;转发的访问令牌为短期且按请求有效,应用应在每次请求时读取,不应跨请求或会话存储。上述内容来自 Databricks 官方博客,具体作用域名称、配置入口与可用范围可能随版本调整,请以官网当前文档与信息为准。