在 Snowflake 中授予对特定未来 table 的访问权限

Grant access to a specific future table in Snowflake

我目前正在使用 Fivetran 将数据通过管道传输到 Snowflake。一旦数据落地,DBT 每 6 小时运行一些简单的已保存查询,这些查询在模式中显示为 tables。 但是,各种角色的权限不断被重置,他们无法再访问我授予他们查看权限的模式中的 tables。我怀疑这是因为 DBT 正在下降然后重新创建有问题的 tables。

一种可能的解决方案是授予对架构中未来 table 的访问权限,例如:

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

但是,我只想授予对单个 table 的访问权限,而不是全部。这可能吗?

post-hooks! Used in concert with {{ this }} (docs 完全可以做到这一点),它们是一个强大而灵活的工具。

您有两个选项可以使用 post-hooks 提供对单个 table 的访问:

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

select ...

这里有更多关于在 dbt 项目中授予访问权限的in-depth guide

p.s。喜欢你的用户名!