MySQL 8.0 で 新DB&ユーザー作成と、そのユーザーに全権を与える

MySQL

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 によってサポートされる権限に記載があります。

コメント

タイトルとURLをコピーしました