MySQLでユーザー作成する最も効率の良いやり方

※MySQL8ではCreate Userする必要があります

MySQL8では以下の手順を踏みましょう。

  1. ユーザー作成+パスワード設定
  2. ユーザーに権限付与

ユーザー作成+パスワード設定

以下の場合。

  • ユーザー名:user_name
  • パスワード:password123
CREATE USER 'user_name' IDENTIFIED BY 'password123';

ユーザーに権限付与

以下の場合。

  • 「user_name」ユーザーに、「database_name」データベース配下の全テーブルに対する全権限を付与。
GRANT ALL ON database_name.* TO 'user_name';

ALL権限の詳細↓

  • ALL または ALL PRIVILEGES 権限指定子は、短縮形です。これは、「特定の権限レベルで使用可能なすべての権限」 (GRANT OPTION を除く) を表します。たとえば、グローバルまたはテーブルレベルで ALL を付与すると、すべてのグローバル権限またはテーブルレベルのすべての権限が付与されます。

MySQLヘルプ

Create User する必要ない(MySQL5の話。MySQL8は違いますよー)

んですねー。

いきなりGRANTコマンドで良いんですな。

コマンド

GRANT ALL PRIVILEGES ON 
   `データベース名`.* 
TO 
   '新規作成するユーザー名'@'localhost' 
IDENTIFIED BY 
   '新規作成するユーザーのパスワード';

注意点

GRANT ALL PRIVILEGES ON 
   `データベース名`.* 
TO 
   '新規作成するユーザー名'@'localhost' 
IDENTIFIED BY PASSWORD 
   '新規作成するユーザーのパスワード';

ってやっちゃうと、

ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

というようなエラーが出てしまいます。

これは「新規作成するユーザーのパスワード」を、ハッシュ化されたパスワードで指定していないためです。
ハッシュ化していないパスワードで指定する場合には、「PASSWORD」を付けずにコマンド発行すること。

参考にしたサイト

インフラエンジニアのメモ : [ERROR 1372 (HY000): Password hash...41-digit hexadecimal..]エラー

ありがとうございました。

コメント

タイトルとURLをコピーしました