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

如何限制Azure AD SPN在Databricks中的只读权限?

限制Azure AD SPN在Databricks中的只读权限方案

可以通过Workspace权限管控和数据对象权限管控两层实现需求,具体步骤如下:

1. Workspace级权限:限制资源操作(作业/集群/仓库等)

  • 给目标SPN分配Workspace Viewer内置角色:该角色仅允许查看Workspace内的资源(作业、集群、仓库等),无法执行创建、修改、删除操作。
  • 若内置角色不满足需求,可创建自定义权限角色:
    • 仅保留jobs.read、clusters.read、warehouses.read等只读类权限,移除所有jobs.delete、clusters.delete、warehouses.delete、jobs.create等写操作权限。
    • 将自定义角色绑定到SPN,确保没有其他高权限角色(如Workspace Admin)被继承。

2. 数据对象权限:限制SQL操作(禁止DML/DDL)

根据你使用的元数据存储方案,分别配置:

针对Unity Catalog

  • 在Catalog、Schema、Table层级,仅给SPN授予SELECT权限:
    GRANT SELECT ON CATALOG <catalog-name> TO `<spn-principal>`;
    GRANT SELECT ON SCHEMA <schema-name> TO `<spn-principal>`;
    GRANT SELECT ON TABLE <table-name> TO `<spn-principal>`;
    
  • 确保未授予INSERT、UPDATE、DELETE、ALTER、DROP等权限,也不要将SPN加入有更高权限的组。

针对Hive Metastore

  • 对目标数据库和表授予SELECT权限:
    GRANT SELECT ON DATABASE <db-name> TO `<spn-principal>`;
    GRANT SELECT ON TABLE <table-name> TO `<spn-principal>`;
    
  • 拒绝所有非只读操作的权限(若有继承的高权限):
    REVOKE INSERT, UPDATE, DELETE ON TABLE <table-name> FROM `<spn-principal>`;
    

3. 验证权限生效

  • 执行DML语句(如DELETE FROM <table>):应返回权限不足的错误提示。
  • 通过API尝试删除作业/集群:会收到403 Forbidden的响应。
  • 在Databricks控制台查看SPN的权限列表,确认仅包含只读类权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:03:10