首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dbt云中,使用雪花创建DBT RUN - by使用的"dbt转换器“角色是一个很好的标准。

在dbt云中,使用雪花创建DBT RUN - by使用的"dbt转换器“角色是一个很好的标准。
EN

Stack Overflow用户
提问于 2022-06-15 18:04:04
回答 2查看 335关注 0票数 1

让dbt运行的唯一方法是作为一个帐户管理员进行连接(很糟糕)。在执行dbt模型时,任何其他角色都会给我“在表xxx上的权限不足”。我正在使用DBT云连接到雪花。我用我想要使用的角色创建了下面的角色,但我的赠款似乎不起作用,允许使用这个新角色来运行我的模型。

我的dbt云"dev“目标配置文件以dbt_user形式连接,并在analytics.dbt_ddumas中创建对象。

下面是我的授予脚本,由一个帐户管理员运行:

一定有比下面这个更简单的方法,它甚至不起作用:

戴夫

代码语言:javascript
复制
use role accountadmin;
CREATE ROLE dbt_role
GRANT ROLE dbt_role TO ROLE sysadmin
GRANT USAGE ON WAREHOUSE transform_wh TO ROLE dbt_role
GRANT ALL ON database analytics TO ROLE dbt_role
grant ALL ON ALL schemas in database analytics to role dbt_role;
grant ALL ON future schemas in database analytics to role dbt_role;
grant ALL ON ALL tables in SCHEMA analytics.dbt_ddumas to role dbt_role;
grant ALL ON future tables in SCHEMA analytics.dbt_ddumas to role dbt_role;
grant ALL ON ALL views in SCHEMA analytics.dbt_ddumas to role dbt_role;
grant ALL ON future views in SCHEMA analytics.dbt_ddumas to role dbt_role;

CREATE USER dbt_user PASSWORD = 'Password123' MUST_CHANGE_PASSWORD = FALSE;
GRANT ROLE dbt_role TO USER dbt_user;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-15 19:05:45

我建议遵循克莱尔关于dbt语篇的优秀文章,该文章涵盖了这个确切的主题。

确切地知道您无法从哪个表、架构或数据库读取数据,这将是很有帮助的。您说的是my dbt cloud "dev" target profile connects as dbt_user, and creates objects in analytics.dbt_ddumas,但是它从哪些数据库和模式读取?(你的资料来源在哪里)?您的大部分授权将面向读取现有数据,因为dbt将创建您的dbt_ddumas模式,并因此拥有它和它创建的所有其他关系。

假设原始数据位于一个名为raw的数据库中,那么我将将您的脚本更改为:

代码语言:javascript
复制
use role accountadmin;
CREATE ROLE dbt_role
GRANT ROLE dbt_role TO ROLE sysadmin
GRANT USAGE ON WAREHOUSE transform_wh TO ROLE dbt_role

grant usage on database raw to role dbt_role;
grant usage on future schemas in database raw to role dbt_role;
grant select on future tables in database raw to role dbt_role;
grant select on future views in database raw to role dbt_role;

grant usage on all schemas in database raw to role dbt_role;
grant select on all tables in database raw to role dbt_role;
grant select on all views in database raw to role dbt_role;

grant usage ON database analytics TO ROLE dbt_role;
grant create schema ON database analytics TO ROLE dbt_role;

CREATE USER dbt_user PASSWORD = 'Password123' MUST_CHANGE_PASSWORD = FALSE;
GRANT ROLE dbt_role TO USER dbt_user;
票数 0
EN

Stack Overflow用户

发布于 2022-06-19 05:13:14

对于那些刚开始使用雪花的DBT的人,您需要做的是设置dbt角色来运行模型、测试、dbt运行、dbt测试等等。

在经历了很多挫折和愿意拯救别人的痛苦之后.

这是为了更低的环境。Ex或测试步骤0:以accountadmin身份登录,或让accountadmin执行以下操作:步骤1:创建一个仓库。例如。transform_wh步骤2:创建数据库Ex。下面运行分析程序,用正确的密码替换dbt_user:

注意:不要将任何架构创建为ACCO对联DO。这是我的主要问题,所以不要犯那个错误。回复这条消息的用户的回复不知道,他的回复也会起作用。在执行dbt_loader_dev时,dbt_run角色将执行此操作。如果这样做,dbt_loader_dev在尝试创建模式、表和视图时将获得“不足特权”错误。

代码语言:javascript
复制
USE ROLE accountadmin;
-- this role is used to load all models in the dev (lower environments) when you do a dbt run, dbt test, etc
CREATE ROLE dbt_loader_dev;

-应授予sysadmin自定义角色

代码语言:javascript
复制
grant ROLE dbt_loader_dev TO ROLE sysadmin;

--这些授权是您需要运行的全部内容,以便dbt_loader_dev能够完成任何dbt运行、dbt测试等所需的所有任务。

代码语言:javascript
复制
GRANT USAGE ON WAREHOUSE transform_wh TO ROLE dbt_loader_dev;
GRANT all ON database analytics TO ROLE dbt_loader_dev;
GRANT usage ON ALL SCHEMAS IN DATABASE  analytics TO dbt_loader_dev;
GRANT usage ON future SCHEMAS IN DATABASE  analytics TO dbt_loader_dev;
GRANT Monitor ON ALL SCHEMAS IN database analytics TO dbt_loader_dev;
GRANT Monitor ON future SCHEMAS IN database analytics TO dbt_loader_dev;
GRANT MODIFY ON ALL SCHEMAS IN DATABASE  analytics TO dbt_loader_dev;
GRANT MODIFY ON future SCHEMAs IN DATABASE analytics TO dbt_loader_dev;
-- create a user and grant the role
CREATE USER dbt_user PASSWORD = 'Password123' MUST_CHANGE_PASSWORD = FALSE;
GRANT ROLE dbt_loader_dev TO USER dbt_user;

就这样!享受吧!戴夫(编辑)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72635952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档