在 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。喜欢你的用户名!
我目前正在使用 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。喜欢你的用户名!