ざっくりん雑記

プログラミングで忘れそうなことをひたすらメモる

MySQL入門 - 作業ユーザを作る方法とMySQLのユーザ一覧を参照する方法

前回は、データベースの作成、削除、接続中のデータベースの確認などを確認した。

azuuun-memorandum.hatenablog.com

今回は、特定のデータベースにアクセスするための作業ユーザというのを作っていく。ちなみに今までは全てrootユーザで操作していた。

作業ユーザを作る

今まで使っていたrootユーザというのは権限が強いので全てのデータベースにアクセスすることが可能。なのでrootユーザでうっかり間違った操作を行ってしまうと、全てのデータベースに影響を与えかねない。

そういう意味で、一般的にはひとつのデータベースを作ったら、そのデータベースにだけアクセス可能な"作業ユーザ"を作ってデータベースをいじっていくのが基本になる。

ではさっそく作ってみる。まずはrootでMySQLにアクセスし、新しくデータベースを作る。

mysql> create database blog_data;

blog_data に関してはデータベース名なので適当に違う名前にしても良い。自分はドットインストールを見ながらやってるので、例に近い名前を付けてみた。

次に作った blog_data データベースに対して作業ユーザを設定する。書式はこんな感じ。

grant all on データベース名.* to ユーザー名@loacalhost identified by ‘パスワード';
  • "grant all on データベース名.*" →「そのデータベースにおいて権限を与える」

  • "to ユーザ名@localhost" →「localhostの○○ユーザに対して」

  • "identified by 'パスワード'" →「パスワードを設定する」

という意味。

実際に実行すると、

mysql> grant all on blog_data.* to azuuun@localhost identified by '********';
Query OK, 0 rows affected (0.00 sec)

無事、作業ユーザができた。

作業ユーザで該当データベースにアクセスする

まず、MySQLサーバを終了させる。

コマンドプロンプトから

>mysql -u azuuun -p blog_data

パスワードを入力してアクセス。無事、作業ユーザで入れた。

MySQLのユーザを調べる

rootユーザでアクセスする。

mysql> select Host,User,Password from mysql.user;

mysql データべースの user テーブルを参照できる。

+-----------+--------+------------+
| Host      | User   | Password   |
+-----------+--------+------------+
| localhost | root   | ********** |
| 127.0.0.1 | root   | ********** |
| ::1       | root   | ********** |
| localhost | hoge   | ********** |
| localhost | azuuun | ********** |
+-----------+--------+------------+

さっき作った User 'azuuun'も確認できた。 ここにUser名が空で名前がないユーザ、通称"匿名ユーザ"が存在する場合、セキュリティを考えてパスワードを設定するか削除することが推奨されているようです。

セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除 | VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

MySQLのユーザ―管理についてはこちらが詳しい。

www.karakaram.com

今回はここまで。