質問するログイン新規登録

意見交換

1回答

510閲覧

MySQLなどのDBの権限設定について

ryotech

総合スコア4

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

アプリ

アプリは、スマートフォンやWebアプリケーションの開発に関する投稿。iOS・Android・PWAなどで利用されます。

0グッド

1クリップ

投稿2026/03/18 13:08

編集2026/03/18 13:10

0

1

テーマ、知りたいこと

一般的なWebアプリ開発でのMySQL権限管理、実務での「ロール分け」と「運用のバランス」について

最近MySQLを勉強していて、テーブル単位や操作ごとに細かく権限を振れることを知りました。
しかし、実務でガチガチに細かく設定しすぎると運用が回らなくなりそうな気もしています。
そこでお伺いしたいのですが、「一般的なWebアプリ開発」の現場では、
「アプリユーザー用」や「開発者の作業用」などのロール(役割)ごとに、
どの程度の粒度で権限を分けるのが現実的なのでしょうか?

背景、状況

現在プログラミング勉強中の初心者ですが、これまでは特に深く考えず、アプリからの接続も自分のDB操作もすべて root で通してしまっていました…。

さすがに実務でこれはマズいと思い、権限を絞る練習を始めようとしています。ただ、「テーブルを追加するたびにポチポチ権限を設定し直す」ような運用は、規模が大きくなると管理がパンクしそうなイメージを持っています。

そこで、現場の皆さんのリアルな感覚を伺いたいです。

  • アプリユーザー用の権限:
    対象DBに対して SELECT/INSERT/UPDATE/DELETE を丸ごと許可して使い始めるのが標準的なのでしょうか?それとも「このテーブルは読み取りだけ」のようにテーブル単位で細かく制御するのが普通ですか?
  • 開発者の作業用:
    開発者がデータを確認する時、誤操作を防ぐために「参照専用(ReadOnly)」ユーザーを作って、更新用とは明確に使い分けるのが一般的でしょうか?
  • 管理と手間のバランス:
    「最初はセキュリティ重視で細かく設定したけど、結局面倒で適度に緩めた」とか、逆に「緩すぎて事故ったから今はこうしてる」といった、運用コストと安全性のバランスについての経験談があれば教えてほしいです。

「ケースバイケース」なのは承知の上で、皆さんの周りでの「これだけは外さない」という実例や、初学者がまず慣れるべき設定レベルなどのアドバイスをいただけると嬉しいです!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

回答2

#1

i18nagentai

総合スコア16

投稿2026/03/23 10:44

実務でよく使われるパターンを共有します。

アプリ用ユーザー: 対象DBに対して SELECT, INSERT, UPDATE, DELETE をDB単位で付与するのが一般的です。テーブル単位の制御は管理コストが高く、テーブル追加のたびに権限変更が必要になるため、小〜中規模ではDB単位で十分です。

開発者用: 本番環境では SELECT のみの参照専用ユーザーを用意するのがベストプラクティスです。誤って UPDATE や DELETE を実行してしまう事故は実際に起こります。

最低限おさえるポイント:

  • アプリからは絶対に root で接続しない
  • 本番DBへの接続は参照専用ユーザーを使う
  • DROP や ALTER 権限はアプリユーザーには付与しない(マイグレーション専用ユーザーを別途作る)

初学者の方は、まず「アプリ用」「参照専用」「管理用」の3つに分けるところから始めると良いと思います。

#2

この回答は、運営により削除されました。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問