授予对Snowflake中特定future表的访问权



我目前正在使用Fivetran将数据输送到Snowflake。数据登陆后,DBT每6小时运行一些简单的保存查询,这些查询显示为模式中的表。然而,各种角色的权限不断被重置,他们不能再访问我赋予他们权限的模式中的表。我怀疑这是因为DBT删除了有问题的表,然后重新创建了表。

一个可能的解决方案是授予对模式中未来表的访问权限,例如:

grant select on future tables in schema myschema to role some_role;

然而,我只想给访问一个表,而不是所有。这可能吗?

这完全可以用post-hooks实现!与{{ this }}(docs)一起使用,它们是一个强大而灵活的工具。

使用post-hooks提供对单个表的访问有两个选项:

  • 作为模型定义文件顶部的配置块,或者
  • dbt_project.yml中的
{{ config(
post_hook=[
"grant select on {{ this }} to role some_role;"
]
) }}
select ...

下面是关于在dbt项目中授予访问权限的更深入的指南

注。爱你的用户名!