LoginSignup
0
0

More than 3 years have passed since last update.

MySQLのユーザー・権限設定

Last updated at Posted at 2020-09-13

MySQL上でのユーザー・権限設定について必要だったことを纏めました。具体的には、以下について書きました。

  • rootユーザーのユーザー名の変更
  • パスワードの変更
  • 新しいユーザーの作成
  • 権限設定
  • 権限設定の反映

MySQL ver. 8.0.21 で動作確認済みです。

MySQL上のユーザー・権限の仕様について

ユーザーは、ユーザーと接続元がプライマリキーとして mysql.user テーブルに保存されています。コマンドでユーザーに対する操作を行う場合には、「ユーザー名@接続元」という形式を利用します。

例:

  • 'root'@'localhost' - localhostからのアクセスでのrootユーザーの権限設定
  • 'root'@'%' - 全てのHostからのアクセスでのrootユーザーの権限設定

rootユーザーを変更する

rename user 'root'@'localhost' to 'new-root-user'@'localhost';
rename user 'root'@'%' to 'new-root-user'@'localhost';

パスワードを変更する

SET PASSWORD FOR 'new-root-user'@'localhost' = 'new-password';
SET PASSWORD FOR 'new-root-user'@'%' = 'new-password';

新しいユーザーを作成する

CREATE USER 'new-user'@'%' IDENTIFIED BY 'new-password';

権限を付与する

特に、ユーザーを新たに作成した場合は権限が付与されていないため、権限の付与が必須です。

# 例:あるDBに対してのみ、全権限を付与する。指定されたDB内であれば全ての操作ができる)
GRANT ALL PRIVILEGES ON db_schema.* TO 'user'@'%';
# 例:あるDBに対してのみ、テーブルとVIEWのSELECTの権限を付与する。
GRANT SELECT, SHOW VIEW ON db_schema.* TO 'user'@'%';

詳しい権限の設定については、公式ドキュメント内の「Summary of Available Privileges」で確認できます。

本記事では触れませんが、「READ ONLY」の権限を付与するにはどうするか、という問いに対してはこちらの投稿を併せて見ると良いかと思います。

権限関連の設定を反映させる

FLUSH PRIVILEGES;

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0