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

如何在DBT中使用新权限授予功能及区分组与用户授权

在DBT中配置组/单个用户权限授予的正确方式

你的配置没生效,核心问题是用了单数的grant,正确的键名应该是复数的grants,另外不同数据仓库的权限配置语法有细微区别,下面给你对应场景的正确写法:

通用核心修正

首先把配置里的grant改成grants,这是DBT权限配置的必填键名:

models:
  my_schema:
    schema: my_schema
    grants:  # 这里必须是复数
      select:
        # 主体配置写在这里

针对不同数据仓库的具体写法

1. BigQuery(需要明确指定组/用户类型)

如果是BigQuery,必须用group:或user:前缀标注主体类型,正确配置如下:

models:
  my_schema:
    schema: my_schema
    grants:
      select:
        - group: my_group  # 授予组权限
        - user: john.doe@example.com  # 授予单个用户权限

2. Snowflake/Redshift(直接写角色/用户名称)

这两类仓库不需要指定类型,直接写角色(组)或用户的名称即可:

models:
  my_schema:
    schema: my_schema
    grants:
      select:
        - my_group  # 授予组/角色权限
        - john_doe  # 授予单个用户权限

额外注意事项

  • 运行dbt的账号必须拥有授予对应权限的权限,否则配置会失效
  • 权限会在dbt run完成后自动执行,也可以用dbt run --grant-only单独触发权限授予操作
  • 如果要给整个schema而非单个模型配置权限,可以把grants配置放在schema层级的通用配置里

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:34:58