📌

Redashで権限を編集する方法

2024/01/15に公開

業務でのRedashの利用に際して、適切に認可を設定するために調べたことをまとめておきます。
細かく設定する方法は公式ガイドやUIが用意されていないため、ソースコードを読みつつ権限テーブルを編集しました。

公式ガイド:User, Groups, & Permissions

Redashの権限仕様

メンバーをグループに所属させ、グループに対して権限を付与する。
メンバーは複数グループに所属可能。

グループは予めadminとdefaultの2つが用意されており、以下はadminグループのみ実行可能。

  • グループを作成 / 削除
  • メンバーをグループへ追加 / 除外
  • メンバーをRedashへ招待 / アカウント無効化
  • データソースの編集

グループへ権限を設定する方法は以下の2種類だが、画面から操作できるのはデータソース単位の設定のみ。

  1. データソース単位の設定
  2. アクション単位の設定

データソース単位の設定

  • データソースごとにFull Access、View Onlyを選べる
  • Full AccessはQueryの新規作成が可能だが、View Onlyは不可
  • View Onlyでも既存クエリの閲覧・リフレッシュ(実行)、ダッシュボードの閲覧は可能
  • 大雑把な制御しか出来ない

アクション単位の設定

詳細に権限を設定したい場合はこちらの仕組みを使用する。
UIが無いため、権限テーブルのレコードを変更する必要がある。
※CLIでも出来るみたい

対象のテーブル名はgroups

アクションは12種類あり、permmisionカラムに配列で格納されている。
必要な権限のみ配列に追加し、不要なものは削除する。

参考1:PostgreSQLの配列型カラムの操作方法
参考2:Redashの該当ソースコード

アクション一覧
create_dashboard ダッシュボード作成
edit_dashboard ダッシュボード編集
list_dashboards ダッシュボード一覧表示
create_query クエリ作成
edit_query クエリ編集
execute_query クエリ実行・結果表示
schedule_query クエリ定期実行の設定
view_query クエリ一覧表示
list_alerts アラート一覧表示
list_data_sources データソース一覧表示
list_users メンバー一覧表示
view_source クエリの内容(SQL)表示

view_sourceは少し分かりづらいですが、以下の部分の表示です。

その他の仕様

他人が作成したクエリ・ダッシュボードの編集について

クエリを編集できるのは作成者本人かadminグループのメンバーのみ。
ただし設定を変えれば、グループに関わらずメンバーに個別で編集権限を与えることも可能。


テーブル単位の権限を設定したい場合

Redashにはその仕組みが無いため、以下の通りデータベース側の仕組みを使う。

  1. 必要な権限を持つユーザーをデータベースに作成する
  2. そのユーザー名とパスワードでアクセスするデータソースを作成する
  3. 権限を与えたいグループにデータソースを紐付ける

公式ガイド:What if I want to limit the user to only some tables?

GitHubで編集を提案

Discussion