4-3.MySQLでユーザーアカウントを作成する

2019年7月15日

目次

1.ユーザーアカウントについて

MySQLではユーザーアカウントをユーザー名とホスト名の組み合わせで管理します。
同じユーザー名でもホスト名が違うと別ユーザーアカウント扱いになります。
ユーザー名は最大半角で32文字ホスト名は半角で最大60文字です。

スポンサードサーチ

2.ユーザーアカウントの作成方法

ユーザーアカウントをmysqlモニタから作成するには
①CREATE USERで作成
②GRANTで作成(バージョン8以降出来なくなりました)
③mysql.userテーブルに直接ユーザーアカウント情報をinsertする
の方法があります。
③の方法はバージョン8から公式リファレンスマニュアルから無くなってるので推奨されなくなったようです。

また、GRANTでユーザーを作成する方法もバージョン8では廃止されたようでバージョン8で実行するとはエラーとなります。

【バージョン5.6でGRANTによるユーザ作成】

mysql> grant select on *.* to user56@localhost identified by 'ppass';
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host from mysql.user where user='user56';
+--------+-----------+
| user   | host      |
+--------+-----------+
| user56 | localhost |
+--------+-----------+
1 row in set (0.01 sec)

mysql>

【バージョン8でGRANTによるユーザ作成】→エラーになってしまう

mysql> grant select on *.* to user8@localhost identified by 'ppass';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'ppass'' at line 1
mysql>

 

スポンサードサーチ

3.作成方法

1)パスワードなしでユーザーを作成するには

パスワード無しでユーザーを作るには以下の構文で作成します。
但し、パスワード無しというのはセキュリティ上問題がありますので自分のPCで学習用に使う場合に留めておいた方が良いと思います。

CREATE USER ユーザー名;

2)パスワードありでユーザーを作成するには

パスワードありでユーザーを作成するには以下の構文で行います。

CREATE USER ユーザー名 IDENTIFIED BY 'パスワード’;

3)複数ユーザーを一括で作成する場合

複数のユーザーを一回のSQLで作成できます。
以下の構文で行います。

 

CREATE USER ユーザー名1 IDENTIFIED BY 'パスワード1’,
ユーザー名2 IDENTIFIED BY 'パスワード2’,
:
ユーザー名n IDENTIFIED BY 'パスワードn’;

4.実行例

ユーザIDを「SCOTT」、パスワードを「TIGER」でユーザーを作成します。

mysql> CREATE USER 'SCOTT'@localhost IDENTIFIED BY 'TIGER';
Query OK, 0 rows affected (0.01 sec)

mysql>