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

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

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

環境

  • MySQL 5.7

ユーザ作成

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

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

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

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

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

パスワード設定

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

CREATE USER ユーザ名'パスワード';
Code language: JavaScript (javascript)

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

CREATE USER cat IDENTIFIED BY 'catcatcat';
Code language: JavaScript (javascript)

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

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

CREATE USER 'ユーザ名'@'IPアドレス' IDENTIFIED BY パスワード;
Code language: JavaScript (javascript)

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

CREATE USER 'dog'@'192.168.10.1' IDENTIFIED BY 'dogdogdog';
Code language: JavaScript (javascript)

確認してみましょう。

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

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

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

CREATE USER ユーザ名'パスワード' PASSWORD EXPIRE INTERVAL N DAY;
Code language: JavaScript (javascript)

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

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

CREATE USER cow IDENTIFIED BY 'cowcow' PASSWORD EXPIRE INTERVAL 1 DAY;
Code language: JavaScript (javascript)

確認してみましょう。

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

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

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

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

By user