MySQL 8.0での方法です。MySQL 5.X で実行出来るかは試していません。
前提
接続情報及び、接続先DBは下記を使用します。
接続ユーザー | ruka_ojisan |
ホスト | localhost |
パスワード | password123456 |
データーベース | ruka_ojisan_db |
発行SQL
CREATE DATABASE ruka_ojisan_db CHARACTER SET utf8mb4;
CREATE USER 'ruka_ojisan'@'localhost' IDENTIFIED BY 'password123456';
GRANT ALL ON ruka_ojisan_db.* TO 'ruka_ojisan'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
作成追加したユーザーでの接続確認します。
[root@dev ~]# mysql -uruka_ojisan -p ruka_ojisan_db
Enter password: (password123456を入力)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 227
Server version: 8.0.25 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ruka_ojisan_db |
+--------------------+
2 rows in set (0.00 sec)
権限の絞り込み
ユーザーに与える権限を絞り込みたい場合は、GRANT ALL
部を変更します。
実行できる権限を減らす
権限:SELECT,INSERT,UPDATE,DELETE
GRANT SELECT,INSERT,UPDATE,DELETE ON ruka_ojisan_db.* TO 'ruka_ojisan'@'localhost' WITH GRANT OPTION;
特定のテーブルのみ操作可能にする
テーブル:admin
GRANT ALL ON ruka_ojisan_db.admin TO 'ruka_ojisan'@'localhost' WITH GRANT OPTION;
特定のテーブルのみ、SELECT実行を許可する
権限:SELECT
テーブル:admin
GRANT SELECT ON ruka_ojisan_db.admin TO 'ruka_ojisan'@'localhost' WITH GRANT OPTION;
SELECT,INSERT,UPDATE,DELETEなど権限の指定はMySQL 8.0 リファレンスマニュアル| MySQL によってサポートされる権限に記載があります。
コメント