ユーザーアカウントの確認、作成、変更

DBに接続して操作を行うためにはユーザーアカウントが必要です。ユーザーアカウントの確認、作成、変更する方法について紹介します。

ユーザー確認

登録されているユーザー一覧を確認するには、以下クエリを実行します。

SELECT user, host FROM mysql.user;
mysql> SELECT user, host FROM mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)

SHOW GRANTS
( 指定ユーザーの権限確認 )

SHOW GRANTS FOR ユーザー で権限を確認できます。

mysql> SHOW GRANTS FOR `root`@`%`;
+-------------------------------------------------------------+
| Grants for root@%                                           |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'%' WITH GRANT OPTION        |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)

GRANT
( ユーザー作成 )

GRANT文を使いユーザー作成と権限設定を行います。

/* 書式 */
GRANT 権限 ON データベース.テーブル TO 'ユーザ'@'ホスト' identified by 'パスワード';
 
/* 例1)「sampleDB」の全テーブルに対する全ての権限を付与 */
GRANT ALL ON sampleDB.* TO user@localhost identified by 'pass';
 
/* 例2)「sampleDB」の「sampleTABLE」に対するSELECT文、INSERT文、UPDATE文、DELETE文の実行権限を付与*/
GRANT SELECT,INSERT,UPDATE,DELETE ON sampleDB.sampleTABLE TO user@localhost identified by 'pass';
 
/* 作成したユーザの権限を確認 */
show grants for user@localhost

SET PASSWORD
( パスワード変更 )

SET PASSWORD FOR ユーザ名@ホスト名 = PASSWORD('新しいパスワード'); 

RENAME USER
( ユーザー名、ホスト名変更 )

RENAME USER ユーザ名@ホスト名 to 新ユーザ名@新ホスト名
 
/* 例) ホストを%に変更 */
RENAME USER root@localhost to root@'%'

DROP
( ユーザ削除 )

DROP USER ユーザ名@ホスト名