Breaking News

Default Placeholder Default Placeholder

2020年4月のDBスペシャリストを受験することにしました。

データベーススペシャリスト試験(DB) ~ ビッグデータ時代に求められる、データ志向の担い手 ~

ということで今回はユーザ作成についてまとめていこうと思います。

環境

  • MySQL 5.7

ユーザ作成

MySQLを使うにはユーザが必要です。

最初にrootユーザを作ると思うのですが、基本的にそのユーザはなんでもできるユーザなのでもしパスワードが知られてしまうと自分のDB内でやりたい放題されてしまいます。

それを防ぐためにrootユーザではないユーザを作成して使用することが大事になってきます。

MySQLのユーザ作成でできること

MySQLのユーザ作成ではどんなことができるのか、とまとめていきます。

パスワード設定

誰でもそのユーザを使えるようになったら困ります。なので特定の人だけがそのユーザを使えるようにユーザにはパスワードを設定できます。

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

これを使って catというユーザを作っていきます。パスワードは `catcatcat`です。

CREATE USER cat IDENTIFIED BY 'catcatcat';

アクセス元IPアドレスの指定

ユーザがアクセスできる元のIPアドレスを指定することができます。

CREATE USER 'ユーザ名'@'IPアドレス' IDENTIFIED BY パスワード;

dogというユーザをIPアドレス 192.168.10.1というIPアドレスからのみ使用可能にしてみます。

CREATE USER 'dog'@'192.168.10.1' IDENTIFIED BY 'dogdogdog';

確認してみましょう。

> SELECT user, host FROM mysql.user WHERE user = 'dog';
+------+--------------+
| user | host         |
+------+--------------+
| dog  | 192.168.10.1 |
+------+--------------+
1 row in set (0.00 sec)

パスワードの有効期限設定

ユーザのパスワードを一定期間で無効にするという設定ができます。

CREATE USER ユーザ名 IDENTIFIED BY 'パスワード' PASSWORD EXPIRE INTERVAL N DAY;

日単位で設定することができます。

では実際に cow というユーザのパスワードの有効期限を1日に設定してみます。

CREATE USER cow IDENTIFIED BY 'cowcow' PASSWORD EXPIRE INTERVAL 1 DAY;

確認してみましょう。

> SELECT user, password_lifetime FROM mysql.user WHERE user = 'cow';
+------+-------------------+
| user | password_lifetime |
+------+-------------------+
| cow  |                 1 |
+------+-------------------+
1 row in set (0.00 sec)

この設定を行うことで定期的にパスワードの再設定を促すことができます。ちなみにパスワードの再設定は ALTER文を使用します。

ここで紹介したものの他にもできることはあると思うので、見つけたら追記していきたいと思います。

最後までお読みいただきありがとうございました。