りんごとバナナとエンジニア

エンジニア修行の記録

Redashでadmin権限のユーザーがデータを見られなくなった

Redash運用中にやらかしたことをシェア。バージョンは4.0.1。

Redashにはdefaultというグループがあらかじめ用意されており、ユーザーを登録すると一度全員がdefaultグループに振り分けられる。
しかしこのグループは権限設定がFull Accessになっているため、そのままにしておくと全員がクエリをいじることができてしまう。
そこで新しくいろいろな権限設定のグループを作ってユーザーを振り分け、defaultグループからはユーザーを消すようにするのがセオリーだと思う。

しかし、グループの振り分けが終わった直後、adminグループにいるユーザーが、ダッシュボードもクエリも見られなくなってしまっていた。
webコンソールを見ても原因がつかめなかったので、RedashのPoatgreSQLを直接のぞいてみることにした。

Redashを動かしているサーバにログインして、以下のようにコマンドを叩く。

sudo -u postgres psql redash
SELECT * FROM groups WHERE name='admin';

すると、以下のように返ってきた。

id | org_id |  type   |            name            |         permissions        |          created_at
--+-------+ ------+-------------------+---------------------+-------------------------------
 1 |      1 | builtin | admin                      | {admin,super_admin}      | 2018-08-23 03:25:08.218876+00

adminグループにいるユーザは全ての権限を使えると思ってグループを振り分けたのだが、実際にある権限はadminとsuper_adminのみだった。
adminグループはあくまで管理用の権限のみを制御するグループであり、逆にユーザーがadminグループだけに所属していると、ダッシュボードやクエリの権限は何もなくなってしまうわけだ。
今回はadminグループのユーザーを別のグループにも所属させることで解決した。わかれば単純なことだが、グループ分けのときに勘違いしないようにしたい。