テーマ、知りたいこと
一般的なWebアプリ開発でのMySQL権限管理、実務での「ロール分け」と「運用のバランス」について
最近MySQLを勉強していて、テーブル単位や操作ごとに細かく権限を振れることを知りました。
しかし、実務でガチガチに細かく設定しすぎると運用が回らなくなりそうな気もしています。
そこでお伺いしたいのですが、「一般的なWebアプリ開発」の現場では、
「アプリユーザー用」や「開発者の作業用」などのロール(役割)ごとに、
どの程度の粒度で権限を分けるのが現実的なのでしょうか?
背景、状況
現在プログラミング勉強中の初心者ですが、これまでは特に深く考えず、アプリからの接続も自分のDB操作もすべて root で通してしまっていました…。
さすがに実務でこれはマズいと思い、権限を絞る練習を始めようとしています。ただ、「テーブルを追加するたびにポチポチ権限を設定し直す」ような運用は、規模が大きくなると管理がパンクしそうなイメージを持っています。
そこで、現場の皆さんのリアルな感覚を伺いたいです。
- アプリユーザー用の権限:
対象DBに対して SELECT/INSERT/UPDATE/DELETE を丸ごと許可して使い始めるのが標準的なのでしょうか?それとも「このテーブルは読み取りだけ」のようにテーブル単位で細かく制御するのが普通ですか? - 開発者の作業用:
開発者がデータを確認する時、誤操作を防ぐために「参照専用(ReadOnly)」ユーザーを作って、更新用とは明確に使い分けるのが一般的でしょうか? - 管理と手間のバランス:
「最初はセキュリティ重視で細かく設定したけど、結局面倒で適度に緩めた」とか、逆に「緩すぎて事故ったから今はこうしてる」といった、運用コストと安全性のバランスについての経験談があれば教えてほしいです。
「ケースバイケース」なのは承知の上で、皆さんの周りでの「これだけは外さない」という実例や、初学者がまず慣れるべき設定レベルなどのアドバイスをいただけると嬉しいです!
あなたの回答
tips
プレビュー