【MySQL】ユーザーを作成と権限の追加
今回はMySQLのユーザー作成と権限追加についてです。
いつも通り、Macでの話になりますのでご注意下さい。
事前準備
MAMPの環境を想定していますので、以下の記事を元に環境構築をお願いします。
www.sky-limit-future.com
ユーザー作成の目的
最初に新たにユーザーを作成する目的について説明します。
説明が不要な方はユーザーの作成へ。
rootユーザーが用意されている
MySQLのデータベースにはrootユーザーが用意されていて、最初にデータベースの操作を行う場合はこのrootユーザーを使います。
rootユーザーは最初から用意されているユーザーであるので、MySQLに対してどんな命令でも出すことが可能です。
rootユーザーはなんでもできてしまう
上記のようにrootユーザーはなんでもできます。しかし、それが悪い方向に行くこともあります。
例えばセキュリティー上の問題です。rootユーザーのパスワードなどが漏洩した場合には、その権限で何をされるかわかりません。
もう一点は、普段使用するのには権限が多すぎてオペミスが怖いです。普段の作業ではできるだけ最小限の権限を持ったユーザーで作業を行い、必要な時だけrootユーザーで作業をするというのが望ましいです。
本題とはズレますが、MySQLインストールをした後には、必ずrootユーザーのパスワードを変更しましょう。
変更は以下のように実施します。変更が不要な方はユーザーの作成へ。
ここからはターミナルでの作業になります。
■ターミナルの起動
画面右上のSpotlight検索で「ターミナル」と入力すると、「ターミナル.app」と出るので、それを選択して下さい。
■「/Applications/MAMP/Library/bin/」へ移動
以下のコマンドでディレクトリに移動します。
$ cd /Applications/MAMP/Library/bin/
■mysqlにrootユーザーで接続
$ ./mysql -u root -p
パスワードが要求されますが、MAMPの場合、rootユーザーのデフォルトパスワードは「root」です。
■パスワード変更
接続が完了したら、sql文を書くことができるので、以下のsql文でパスワードを変更します。
「XXXX」の箇所に設定したいパスワードを入力して下さい。
UPDATE user SET password=PASSWORD('XXXX') WHERE host='localhost' AND user='root'; FLUSH PRIVILEGES;
これで完了です。
話が逸れましたが、続いて新しいユーザーを作成していきます。
ユーザーの作成
先ほど同様にターミナルを使用してユーザーを作成します。
「/Applications/MAMP/Library/bin/」へ移動
以下のコマンドでディレクトリに移動します。
$ cd /Applications/MAMP/Library/bin/
mysqlにrootユーザーで接続
$ ./mysql -u root -p
パスワードを入力して接続します。
ユーザーの作成
ユーザーを作成します。新しく作成するユーザー名を「YYYY」、パスワードを「ZZZZ」とすると以下のようになります。
CREATE USER 'YYYY'@localhost IDENTIFIED BY 'ZZZZ';
ユーザーが作成されたか確認
ユーザーが正しく作成されたか確認します。
■ mysqlデータベースを使用する。
使用するデータベースをmysqlに指定します。
USE mysql;
■ ユーザーを検索
select user,host from user;
これで出力される内容に、先ほど作成したユーザーが含まれていれば大丈夫です。
ユーザーへの権限付与
権限の付与
ユーザーに権限を付与します。
今回は全てのDBに関する、全ての権限を与えます。本来はユーザーの用途に合わせて権限を変えるなどが必要です。
GRANT ALL PRIVILEGES ON *.* TO 'YYYY'@localhost;
エラーがなければ、これで権限の付与が完了しました。
新規ユーザーで接続
最後に、新たに作成したユーザーでmysqlに接続してみましょう。
まず、root権限で接続しているmysqlから接続を解除するために、「exit」と打ちます。
mysql> exit
先ほど作成したユーザー「YYYY」、パスワード「ZZZZ」で接続します。
ご自分の作成したユーザーに読み替えて下さい。
./mysql -u YYYY -p
パスワードが要求されるので「ZZZZ」と入力します。これで無事に接続できれば完了です。