経緯
アプリケーション開発でMySQLにDBを作成し、rootユーザーでアクセスするのはセキュリティ的にも問題があると思うので、専用のユーザーを作成して権限を付与するまでをまとめました
誰かの参考になればと思います
概要
- DBの作成
- ユーザーの作成
- 作成したユーザーに権限を付与
1. DBの作成
mysql> CREATE DATABASE 'database_name';
Query OK, 1 row affected
作成が成功したらOKと表示されますので、
SHOW DATABASES;
で作成したDBがあるか確認しましょう
2. ユーザーの作成
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
これで'user'という名前のユーザーが作成できますので、
SELECT user FROM mysql.user;
でユーザー一覧を確認できます。
3. 作成したユーザーに権限を付与
GRANT ALL ON 'database_name'.* TO 'user'@'localhost';
これで、1.で作成したDBに、2.で作成したユーザーからアクセスできるようになりました。
'*'については、'database_name'に関するすべての操作(閲覧、編集等)を可能にするという意味です。
FLUSH PRIVILEGES;
上記コマンドを入力し、すべての権限をリロードする
最後に先程作成したユーザーでアクセスし、対象にしたDBを操作できるか確認してみましょう。