MySQL を実行している Amazon RDS DB インスタンス用に別のマスターユーザーを作成する方法を教えてください。

最終更新日: 2020 年 8 月 20 日

MySQL を実行する Amazon Relational Database Service (Amazon RDS) または Amazon Aurora MySQL DB インスタンスのマスターユーザーと同じアクセス許可を持つ別のユーザーが必要です。マスターユーザーを複製またはクローンするにはどうすればよいですか?

解決方法

MySQL を実行している RDS DB インスタンスのマスターユーザーは 1 人だけですが、マスターユーザーと完全に同じアクセス許可を持つ新しいユーザーを作成することは可能です。マスターアクセス許可を持つ新しいユーザーを作成するには、以下の手順に従います。

1.    SHOW GRANTS コマンドを実行して、マスターユーザーが現在使用できるアクセス許可のリストを取得し、後で使用するアクセス許可のリストをコピーします。

mysql> SHOW GRANTS for master_username;

このコマンドは以下のような出力を返します。

+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for master_user@% |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, LOAD FROM S3, SELECT INTO S3, INVOKE LAMBDA, INVOKE SAGEMAKER, INVOKE COMPREHEND ON *.* TO 'master_user'@'%' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

注意: 上記のコマンドでは、マスターユーザーのユーザー名は master_user となります。

2.    CREATE USER コマンドを実行して新しいユーザーを作成します。

mysql> CREATE USER 'new_master_user'@'%' IDENTIFIED BY 'password';

注意:new_master_user」と「password」を、使用しているユーザー名とパスワードに置き換えます。

3.    GRANT コマンドを実行して、ステップ 1 で取得したアクセス許可のリストを新しいユーザーに付与します。

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_master_user'@'%' WITH GRANT OPTION;

これで、新しいユーザーにマスターユーザーと同じアクセス許可が付与されます。