[小ネタ]dbt Projects on Snowflakeでセカンダリロールを無効化している場合にGitHub Actions経由でdbt Projectをデプロイできるか確かめてみた

[小ネタ]dbt Projects on Snowflakeでセカンダリロールを無効化している場合にGitHub Actions経由でdbt Projectをデプロイできるか確かめてみた

2025.11.13

さがらです。

小ネタですが、dbt Projects on Snowflakeでセカンダリロールを無効化している場合にGitHub Actions経由でdbt Projectをデプロイできるか確かめてみたので、その内容についてまとめてみます。

背景

先日dbt Project on Snowflakeの初期セットアップ記事を書きましたが、「セカンダリロールを無効化している」あるいは「セカンダリロールの対象ロールを制限したセッションポリシーが適用されている」と、Workspaceからdbt Projectをスキーマオブジェクトとしてデプロイできない事象に遭遇しました。

※具体的には下図のようにパーソナルデータベースにアクセスできないようなことが書かれたエラーが表示されます。

2025-11-07_15h53_02_720

こちらについて、以前下記のブログで試したGitHub Actions経由のデプロイ方法ならば、パーソナルデータベースを介さないためセカンダリロールを無効化していてもデプロイできるのでは…と感じたので試してみます。

https://dev.classmethod.jp/articles/dbt-projects-on-snowflake-deploy-from-github-actions/

やってみた

※以下やってみたことの詳細ですが、結論としては、セカンダリロールを無効化していてもGitHub Actions経由であれば無事にデプロイ出来ました!

まず、利用するSnonwflakeユーザーのセカンダリロールを無効化します。

-- セカンダリロール無効化
ALTER USER <GitHub Actionsで使用するユーザー名>
  SET DEFAULT_SECONDARY_ROLES = ();

-- 上述のクエリで無効化してから再ログイン後、無効化していることを確認
SELECT CURRENT_SECONDARY_ROLES();

2025-11-13_08h50_54

この上で、以前試した以下のブログの内容でGitHub Actions周りのセットアップを行います。

https://dev.classmethod.jp/articles/dbt-projects-on-snowflake-deploy-from-github-actions/

GitHub Actions周りのセットアップ後、ブランチを切って適当にmodelを追加してプルリクエストを発行してmainブランチにマージした後、ワークフローの動作確認をしてみます。

2025-11-13_09h12_14

2025-11-13_09h13_21

2025-11-13_09h13_50

mainブランチへのマージ後、GitHub Actionsのワークフローが動き、dbt Projectのスキーマオブジェクトとしてのデプロイが成功しました!

2025-11-13_09h14_39

2025-11-13_09h16_04

念の為、デプロイしたdbt Projectをスキーマオブジェクトを確認してみると、新規開発したmodelも登録されていました。

2025-11-13_09h19_37

デプロイしたdbt Projectを手動実行すると、新規開発したmodelが実行されてテーブルが無事に作られました。

2025-11-13_09h22_11

2025-11-13_09h22_55

2025-11-13_09h24_14

最後に

簡素な内容ではありましたが、dbt Projects on Snowflakeでセカンダリロールを無効化している場合にGitHub Actions経由でdbt Projectをデプロイできるか確かめてみたので、内容をまとめてみました。

セカンダリロールを有効化することが厳しい環境の方も多いと思いますので、その際はGitHub Actions経由でのデプロイをご検討ください!

この記事をシェアする

FacebookHatena blogX

関連記事