如何在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
相关产品推荐
相关产品推荐

