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

Azure Synapse中Unity Catalog配置及Delta表权限管控问询

Azure Synapse中Delta表与ADLS Gen2数据的权限管控方案

一、ADLS Gen2存储层权限基础

所有平面文件和Delta表都存储在ADLS Gen2,先从存储层完成基础权限管控:

  • Azure RBAC角色:实现容器/目录级的粗粒度权限分配,常用角色包括:
    • Storage Blob Data Reader:授予只读访问权限,适合仅需查看数据的用户
    • Storage Blob Data Contributor:授予读写权限,适合需要处理数据的用户
      直接在Azure门户的存储账户/容器/目录的「访问控制(IAM)」中,为用户或Azure AD组分配对应角色即可。
  • ACL(访问控制列表):实现文件/目录级的细粒度管控,比如针对单个Delta表的存储目录,给特定用户分配读(r)、写(w)、执行(x)权限,可通过Azure CLI配置:
    az storage fs access set --acl "user:user@domain.com:rwx" --path "/delta-tables/sales" --file-system "datacontainer" --account-name "storageaccount"
    

二、Synapse Spark池中的Delta表权限管控

在Synapse Spark环境中,结合Delta Lake的原生权限功能实现表级管控:

  • 使用Delta Lake的SQL命令直接管控表权限,在Synapse Spark笔记本中执行:
    • 授予查询权限:
      GRANT SELECT ON TABLE delta.`abfss://container@storageaccount.dfs.core.windows.net/delta-tables/sales` TO `user@domain.com`
      
    • 授予写入权限:
      GRANT INSERT, UPDATE, DELETE ON TABLE delta.`abfss://container@storageaccount.dfs.core.windows.net/delta-tables/sales` TO `user@domain.com`
      
    • 撤销权限:
      REVOKE SELECT ON TABLE delta.`abfss://container@storageaccount.dfs.core.windows.net/delta-tables/sales` FROM `user@domain.com`
      
  • 配合Synapse工作区角色:通过Synapse Administrator、Synapse Contributor、Synapse Reader角色,控制用户对Spark池、笔记本等资源的访问权限,确保用户仅能操作授权资源。

三、Synapse Serverless SQL池访问Delta表的权限管控

如果通过Serverless SQL池查询Delta表,可通过外部表+SQL权限实现管控:

  1. 创建指向ADLS Gen2的外部数据源:
    CREATE EXTERNAL DATA SOURCE ADLSGen2DataSource
    WITH (
        LOCATION = 'abfss://container@storageaccount.dfs.core.windows.net/',
        TYPE = HADOOP
    );
    
  2. 创建Delta格式的外部文件格式:
    CREATE EXTERNAL FILE FORMAT DeltaFormat
    WITH (
        FORMAT_TYPE = DELTA
    );
    
  3. 创建外部表指向Delta表存储路径:
    CREATE EXTERNAL TABLE dbo.SalesDeltaTable
    (
        SaleDate DATE,
        Amount DECIMAL(18,2),
        ProductID INT
    )
    WITH (
        LOCATION = 'delta-tables/sales/',
        DATA_SOURCE = ADLSGen2DataSource,
        FILE_FORMAT = DeltaFormat
    );
    
  4. 用SQL权限命令管控访问:
    GRANT SELECT ON dbo.SalesDeltaTable TO [user@domain.com];
    REVOKE INSERT ON dbo.SalesDeltaTable FROM [user@domain.com];
    
  • 注意:需确保Serverless SQL池的服务主体或用户通过身份传递(passthrough)拥有ADLS Gen2的对应访问权限。

四、最佳实践

  • 采用最小权限原则:仅授予用户完成工作所需的最小权限,避免过度授权
  • 用Azure AD组管理权限:将用户归类到对应AD组,给组分配权限,简化权限管理流程
  • 定期审计:通过Azure Monitor监控ADLS Gen2的访问日志,通过Synapse活动日志跟踪数据操作行为,及时发现权限滥用情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:27:22