Let's start from here

MySQL ユーザーの作成

データベースをインストールすると最初に全ての権限を持ったrootユーザー(管理者権限)が自動で作成されます。
自分だけでデータベースを使用する時にはそれでも問題ありませんが、データベースソフトは、性質上複数のユーザーの利用が一般的です。その場合に全てのユーザーがrootユーザーとしてアクセスしていると誰もが危険な命令を発行することも可能になります。例えば、データベースの削除です。
こういった事を未然に防ぐためにも管理者以外のユーザーは実行権限を制限すべきです。

ユーザーの作成

先ずは、現在登録されているユーザーの一覧を出力しましょう。

ユーザー作成のコマンドは、

例として次のユーザーを作成します。
ユーザー名:genjin
パスワード:pass1234

無事に作成されたら、「Query OK,~」と出力されます。

登録されているユーザーの一覧をもう一度出力しましょう。

今度は登録したユーザーとhostを出力しましょう。

作成したユーザーのhostには、「%」が表示されています。
「%」は、どこからでもアクセスできると言う意味です。
それに比べて「root」は、localhostになっています。
rootは、localhostでないとアクセスできないんですね(他のPCからの接続ができない)。
アクセスするホストを限定する場合はhostも指定しましょう。

以下のユーザーでlocalhostのアクセスに限定したユーザーを作成しましょう
ユーザー名:genjin_local
パスワード:pass1234_local

もう一度、登録したユーザーとhostを出力して確認しましょう。

ユーザーの権限付与

ユーザーを作成しただけでは、まだ何もできません。
ユーザーを作成したら次は権限を付与しなければなりません。
権限付与は、

ユーザー名に対してデータベースのテーブルに対する権限を付与する、という意味です。
具体的なクエリは次のようになります(データベース名は、「testDB」とします)。

「*」は全てのテーブルと言う意味です。
これで指定したデータベースに全てのテーブルに対して権限を付与したことになります。

「ALL ON」の部分は、全ての権限を有効にすると言う意味です。
「SELECT, INSERT, UPDATE, DELETE ON」にした場合、新規・更新・削除・読み込みが出来るようになります。

このように権限設定では、以下を制御できます。
①どのデータベースに対しての権限
②どのテーブルに対しての権限
③どんな命令を実行できるか

権限を確認するには、「SHOW GRANTS」を実行します。

権限を剥奪する時は、「REVOKE」を使います。

権限を出力しましょう。

ユーザーの削除

ユーザーの削除は、

先ほど作成したユーザーを削除しましょう

削除されているか確認しましょう