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

Databricks中如何限制特定用户访问ADLS指定数据

可行性结论

完全支持该类细粒度权限规则配置,可以实现「仅指定Databricks用户访问ADLS中指定文件」的需求,以下是两种成熟可落地的配置方案,可根据自身环境选型。

方案选型参考
  • 方案1(存储层原生管控):基于ADLS POSIX ACL + Databricks AAD凭据透传实现,适合未启用Unity Catalog的Premium版Databricks环境,权限直接在存储层生效,无法绕过
  • 方案2(数仓层统一管控):基于Databricks Unity Catalog细粒度授权实现,适合已经部署UC的环境,配置流程更简单,权限统一在数据目录层维护
具体配置步骤

方案1:ADLS ACL + 凭据透传配置流程

  • 开启凭据透传
    在Databricks集群配置中开启Azure AD凭据传递功能,确保用户访问ADLS时,直接使用本人的AAD身份做鉴权;禁止使用全局存储密钥、共享服务主体挂载存储,这类配置会让所有集群用户共享同一套存储权限,无法做用户级隔离。
  • 配置目录基础遍历权限
    进入ADLS对应容器的ACL管理页,给用户1、用户2、用户3、用户4授予容器根目录以及data1.csv、data2.csv所在上级目录的执行权限(X),权限生效范围选「此目录和所有子目录」。这个权限仅允许用户遍历目录路径,无法读取任何文件内容,是文件级授权的前置要求,不要额外授予读、写权限。
  • 配置单文件访问权限
    • 找到data1.csv文件,在文件级ACL配置中,给用户1、用户2授予该文件的读取权限(R)+执行权限(X),其余所有用户不授予该文件的任何权限,关闭父目录权限继承
    • 找到data2.csv文件,在文件级ACL配置中,给用户3、用户4授予该文件的读取权限(R)+执行权限(X),其余所有用户不授予该文件的任何权限,关闭父目录权限继承
  • 有效性验证
    分别用四个用户的账号登录Databricks访问对应文件:用户1、用户2可正常读取data1.csv、访问data2.csv时返回权限拒绝;用户3、用户4可正常读取data2.csv、访问data1.csv时返回权限拒绝即为配置生效。

方案2:Unity Catalog细粒度授权配置流程

如果环境已经启用Databricks Unity Catalog,不需要在存储层做复杂ACL配置,直接在UC层完成授权即可:

  • 基础配置
    将ADLS存储容器注册为UC的外部位置,由UC统一承载存储访问身份,不要给任何用户直接授予外部位置的全量读/写权限,同时禁止用户在集群侧配置直连存储的密钥、服务主体,避免权限绕过。
  • 外部表映射与授权
    分别基于两个文件的存储路径创建外部表,再通过SQL命令完成用户授权,示例代码如下:
    -- 基于data1.csv路径创建外部表
    CREATE TABLE IF NOT EXISTS catalog_name.schema_name.data1_table
    USING CSV
    LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/path/data1.csv';
    
    -- 基于data2.csv路径创建外部表
    CREATE TABLE IF NOT EXISTS catalog_name.schema_name.data2_table
    USING CSV
    LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/path/data2.csv';
    
    -- 给用户1、用户2授予data1表的查询权限
    GRANT SELECT ON TABLE catalog_name.schema_name.data1_table TO `user1@your-aad-domain.com`, `user2@your-aad-domain.com`;
    -- 给用户3、用户4授予data2表的查询权限
    GRANT SELECT ON TABLE catalog_name.schema_name.data2_table TO `user3@your-aad-domain.com`, `user4@your-aad-domain.com`;
    
  • 有效性验证
    分别用四个用户的账号登录Databricks,通过UC访问对应表:用户1、用户2可正常查询data1_table,查询data2_table时报权限错误;用户3、用户4可正常查询data2_table,查询data1_table时报权限错误即为配置生效。
配置注意事项
  • 若选择ACL方案,必须保证用户拥有文件所在全路径的执行权限,缺少任意一级目录的执行权限,即使用户有文件本身的读权限也无法正常访问
  • 若选择UC方案,必须开启集群的访问隔离模式,禁止用户在集群内配置自定义存储凭据,避免绕过UC权限管控直接访问存储
  • 不建议在ADLS上给单个用户授予过大的目录级权限,遵循最小权限原则,仅给用户授予完成访问所需的最小范围权限即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:54:20