📌
Redashで権限を編集する方法
業務でのRedashの利用に際して、適切に認可を設定するために調べたことをまとめておきます。
細かく設定する方法は公式ガイドやUIが用意されていないため、ソースコードを読みつつ権限テーブルを編集しました。
公式ガイド:User, Groups, & Permissions
Redashの権限仕様
メンバーをグループに所属させ、グループに対して権限を付与する。
メンバーは複数グループに所属可能。
グループは予めadminとdefaultの2つが用意されており、以下はadminグループのみ実行可能。
- グループを作成 / 削除
- メンバーをグループへ追加 / 除外
- メンバーをRedashへ招待 / アカウント無効化
- データソースの編集
グループへ権限を設定する方法は以下の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にはその仕組みが無いため、以下の通りデータベース側の仕組みを使う。
- 必要な権限を持つユーザーをデータベースに作成する
- そのユーザー名とパスワードでアクセスするデータソースを作成する
- 権限を与えたいグループにデータソースを紐付ける
Discussion