はじめに
Wingarc1st社が提供する、MotionBoardという"ニッチ"なBIツールがあります。
様々な特徴のひとつに「ダッシュボードを閲覧するユーザが、ダッシュボード上のアイテム経由で、接続されるデータベースのテーブルのデータを書き換えられる」点が挙げられます。
使いようによっては危険な気もしますが、知恵を絞りぬいて日々改善し続ける生産現場の多様なニーズに対応できる面白い機能だと思います。
ただ、データベース周りの設定や、Motionboard側の設定など、いろいろ気を付けるポイントがあるので、整理してまとめておきます。
気を付けるポイント
大きく分けて「データベース側の設定」と、「Motionboard側の設定」がある
概要
- データベース側
- Motionboardの接続定義で使用されるユーザが対象テーブルに対して持つ権限
- Motionboard側
- 外部接続設定での当該データベースおよびテーブルなどに対する更新権限
- ユーザやグループに付与されているロールで制限されている機能に対する設定
データベース側の設定について
Motionboardが当該データベースシステムにアクセスする際に使用されるユーザが、そのテーブルのSELECT/INSERT/UPDATE/DELETE権限を持っているかどうか、要確認。
テーブルとユーザの権限の対応関係は以下のSQLで確認できる
SELECT grantee, table_name, privilege_type FROM information_schema.role_table_grants
もし権限を付与できていなければ、たとえば以下のような命令文で付与できる
--GRANTする例--
GRANT USAGE ON SCHEMA schema_name TO hoge_mbuser;
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO hoge_mbuser;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO hoge_mbuser;
など……
Motionboard側の設定
外部接続設定での書き込み権限設定
オンラインマニュアルでいう以下の設定を確認すること
ユーザに付与されるロールの設定
オンラインマニュアルでいう以下の設定を確認すること
「データベース入力(追加、更新、削除)」などがある
もしうまく行ってないときのエラー
原因との対応は撮れていないが、たとえば以下のようなエラーメッセージが出る。
まったくもって原因究明の参考にならないエラーメッセージしか出なくてしびれる。
グループにデータの更新権限がありません。
更新対象のデータが存在しません
ユニーク制約エラーです
等…
おわりに
「データベース入力」は、Motionboardが「BIツール」ではなく「アプリケーションビルダー」と呼ばれる所以の理由のひとつだと思ってます。
権限やガバナンスの話が絡んで非常に難しいとおもいますが、非常に特徴的な機能のひとつだと思うので、使ってみるのも手かと思いました。
((Motionboardじゃなくて別のツールでデータ入力しろよ、、、と思わんでもないですけど、まぁ、そこは、あの、ほら、利用するシステムの数は少ないに越したことはないし、ダッシュボードみつつシームレスにその場で業務したいやんやっぱり、スピード感って大事、だし?うん、、)
参考記事