LoginSignup
1
2

SnowFlake⇨Tableauのロール権限について

Last updated at Posted at 2023-06-23

1.基本的なロールの確認

引用:https://www.youtube.com/watch?v=Ok8kMxl1FdE
スクリーンショット 2023-06-23 7.47.09.png

こちらが、デフォルトで作成されているシステム定義ロールになっています。

階層は以下のようになっています
引用:https://docs.snowflake.com/ja/user-guide/security-access-control-overview
スクリーンショット 2023-06-23 7.51.06.png

ACCOUNTADMINが最上位のロールとなっており、基本的にはこれは用いないことが正しいです
そこから細分化され、最終的にはPUBLICロールという自動的に付与される一番権限が低いロールとなっています。

必要に応じて、PUBLICロールから派生させていくことがベストプラクティスとなっています。

2.ロールの設定方法

今回のユースケース:Tableuでの可視化

DWHからBIツールで可視化というのはよくあるユースケースかと思います。
今回はsnowflake⇨Tableuを使うための最低限のロールを付与していきます。

ロールの作成

ロールの作成はWorksheat上でSQLコマンドで実行させます

--ロールの作成
CREATE OR REPLACE ROLE tableu_maneger;

これで空のロールが作成されます
このような感じで、実際にロールを割り当てる画面を見てみると確かにロールがあります
スクリーンショット 2023-06-23 7.57.59.png

権限の付与

引き続き権限を付与させていきます

GRANT USAGE ON DATABASE <データベース名> TO ROLE <与えたいロール名>;
GRANT USAGE ON SCHEMA <データベース名>.<スキーマ名> TO ROLE <与えたいロール名>;
GRANT USAGE ON WAREHOUSE <WAREHOUSE> TO ROLE <与えたいロール名>;
GRANT SELECT ON TABLE <データベース名>.<スキーマ名>.<テーブル名> TO ROLE <与えたいロール名>;

今回は、あるテーブルに対して、読み取ることが最低限です。
特にTableuを使うエンドユーザーはDBに対して書き込みなどは行いません。
そのため、どのDBのどのテーブルのSELECT(読み取り)権限を与えるのか
そして、忘れてはいけないのが、WAREHOUSEの指定です。
WAREHOUSE(コンピューティング)がないとそもそも読み取りすることすらできません。

これらを指定してあげてあとは作ったロールをユーザーに付与していきます。

ユーザーに権限の付与

GRANT ROLE <ロール名> TO USER <ユーザー名>;

デフォルトロールにしないと、使うユーザーがエラー起きてしまったので、設定しました。

ALTER USER <ユーザー名> SET DEFAULT_ROLE = <デフォルトロールにしたいロール>;

3.まとめ

今回はTableauを使えるようにした最低限のロール権限を作成しました。
よかったら使ってみてください。
それでは

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2