今回は、MySQLでのユーザー作成と権限付与の基本について解説します。

特に研修中によくある質問——

「新しいユーザーを作るにはどうすればいいですか?」
「rootユーザーを使い続けるのってダメなんですか?」

そんな疑問にお答えしながら、安全で効率的なユーザー管理の方法を紹介していきます!


なぜrootユーザーを使い続けると危険なのか?

MySQLをインストールすると自動的に作られる「rootユーザー」。これはいわば「データベースの神様」のような存在です。

rootユーザーができること
全データベースの作成・削除
ユーザー管理
権限変更
すべてのテーブルへの操作

このように何でもできてしまうため、もしもパスワードが漏れた場合や、操作を間違えた場合に重大な事故につながります

安全運用のポイント

  • 本番環境ではrootユーザーを直接使わない
  • 最小限の権限を持ったユーザーを作成して使う
  • 作業内容に応じて権限を細かく分ける

方法①:MySQL Workbenchからユーザーを作成する

GUI操作に慣れていない方でも安心です!

手順まとめ

  1. MySQL Workbench を開く
  2. 上部メニューから「Server」→「Users and Privileges」をクリック
  3. 「Add Account」ボタンを押す
  4. 必要事項を入力
入力項目説明
Login Nameユーザー名(例:newuser
Password / Retype Passwordパスワード
Limit to Hosts Matching接続元ホスト(通常はそのままでOK)
Administrative Roles権限グループ(必要なものだけチェック)
  1. 「Apply」をクリックして完了!

方法②:コマンドラインでユーザーを作成・権限付与する

SQLでの管理に慣れておくと、将来的に自動化やスクリプト化に便利です。

ステップ①:MySQLにログイン

mysql -u root -p


パスワードを入力して接続。


ステップ②:ユーザーの作成

CREATE USER 'newuser'@'localhost' IDENTIFIED BY '0';

説明
'newuser'新しいユーザー名
'localhost'接続を許可するホスト(同一マシン)
'0'パスワード(例として)

ステップ③:権限の付与

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';

  • ALL PRIVILEGES:すべての操作を許可(開発用ならOK)
  • *.*:すべてのデータベースとテーブルを対象にする

本番環境では、特定のDBや権限だけ付与するのが基本です!


ステップ④:権限の反映

FLUSH PRIVILEGES;

これで設定が有効になります。


よく使う権限の種類一覧(抜粋)

権限内容
SELECTデータの読み取り
INSERTデータの追加
UPDATEデータの更新
DELETEデータの削除
CREATEテーブルやDBの作成
DROPテーブルやDBの削除
ALL PRIVILEGES全部(※開発環境のみで使用推奨)

例:carsデータベースにだけ権限を与えたい場合

GRANT SELECT, INSERT, UPDATE ON cars.* TO 'newuser'@'localhost';

→ これで cars データベース内のテーブルに対して読み取り・追加・更新ができます。


まとめ

項目内容
rootユーザーは強力すぎる普段使いは避けよう
権限の細分化が大切読み取り・書き込みなど必要な操作だけ許可
GUIとSQLどちらでも作成可能状況に応じて使い分けよう
開発環境と本番環境ではユーザーを分けるセキュリティ・事故防止の基本

今後の学習の指針

  • 各権限の動作確認を実際にやってみよう(SELECTだけのユーザーでDELETEできる?)
  • REVOKEコマンドで権限を取り消す方法も学ぼう
  • ホスト名の制限(localhost, %, IP指定)についても知っておこう
  • 本番環境で使える「最小権限の原則」についても調べてみよう

ユーザー管理はデータベースセキュリティの出発点です。
研修の段階で正しい使い方をしっかり身につけておきましょう!

最後までお読みいただきありがとうございます。