🔣
AWS Aurora 3系でユーザを作成する
これはなに
AWS Auroraの3系でユーザを作成する方法です。
概要
やり方の概要ですが、AWSのコンソールからとかではなく、普通にMySQLクライアントとかからMySQLの構文を使って作成します。至って普通。
Aurora 3系はMySQL8.0系との互換性があるので、今回はMySQL8.0系の以下ドキュメントを参照します。
- 参照する資料
-
6.2.8 アカウントの追加、権限の割当ておよびアカウントの削除 - MySQL8.0
- アカウントの作成方法
-
13.7.7.21 SHOW GRANTS ステートメント - MySQL8.0
- アカウントの権限を確認する方法
-
13.7.1.6 GRANT ステートメント - MySQL8.0
-
WITH GRANT OPTION
について、「その他のアカウント特性」セクションを参照した
-
-
13.7.1.5 DROP USER ステートメント
- アカウントの削除方法
-
6.2.8 アカウントの追加、権限の割当ておよびアカウントの削除 - MySQL8.0
作成方法とその解説
作成方法
-- 既存のアカウント確認
SELECT * FROM mysql.user;
-- 作成
CREATE USER 'reader'@'%'
IDENTIFIED BY 'password';
-- 権限付与
GRANT SELECT -- ここに付与したい権限を列挙
ON database.*
TO 'reader'@'%';
-- 作成したユーザの確認
SHOW GRANTS FOR 'reader'@'%';
-- 間違えて作ってしまったら、対象を確認の上削除
SELECT * FROM mysql.user;
DROP USER 'reader'@'%';
ちょっとの解説
-
'reader'@'%'
について-
アカウント名
@ホスト名
という構成です。%
はホストを指定しないという意味で、その場合はホスト名を明記せずアカウント作成しても良いです - Auroraで
'reader'@'%'
と指定した際、自分はなんかうまく設定できなかったので省略してユーザ作成しました
-
-
database.*
について-
スキーマ名(DB名)
.テーブル名
という構成です。*
は全てという意味です - ホスト名では
%
を使ってテーブル名では*
を使うので若干混乱する。バッククォートの要不要も違う- なぜ
-
-
WITH GRANT OPTION
- 自身と同等の権限を他のユーザーに付与可能な権限
- GRANT文の最後に置いたりする
おわりに
以上です!
Discussion