RDS インスタンスの IP アドレス ホワイトリストは、RDS インスタンスで作成されたすべてのアカウントに適用されます。ホワイトリストを設定して、各アカウントが承認済みデータベースにアクセスできる IP アドレスを制限することはできません。これにより、RDS インスタンスはセキュリティリスクにさらされます。このトピックでは、SQL コマンドを実行して、ApsaraDB RDS for MySQL インスタンスで、指定された IP アドレスから承認済みデータベースにアクセスするアカウントを承認する方法について説明します。
前提条件
特権アカウントが作成されていること。詳細については、「ApsaraDB RDS for MySQL インスタンスでアカウントを作成する」をご参照ください。
注意事項
指定の IP アドレスから承認済みデータベースにアクセスするようにアカウントを承認した後、ApsaraDB RDS [コンソール] で、または API オペレーションを呼び出すことによって、アカウントを管理するときに問題が発生する可能性があります。Data Management (DMS) または SQL 文を使用してアカウントを管理することをお勧めします。
データベースにログインするために使用されるアカウントのユーザー名が同じで、192.168.% や 192.168.%.% など、同等の IP アドレスが割り当てられている場合、システムは認証順序を保証できません。これにより、アクセス例外が発生する可能性があります。たとえば、データベースに
user@192.168.%
アカウントとuser@192.168.%.%
アカウントが作成されている場合、システムはいずれかのアカウントをランダムに認証します。2 つのアカウントのパスワードまたは権限が異なる場合、ログインが失敗するか、データベースにログインした後の権限が異なる可能性があります。異なるユーザー名を使用することをお勧めします。
SQL 文を使用して、指定の IP アドレスから承認済みデータベースにアクセスするアカウントを承認する
RDS インスタンスに接続します。詳細については、「クライアントまたは CLI を使用して ApsaraDB RDS for MySQL インスタンスに接続する」をご参照ください。
SQL 文を実行して RDS インスタンスにアカウントを作成し、指定された IP アドレスからデータベースを管理し、承認済みデータベースにアクセスする権限をアカウントに付与します。
次の文を実行して、test001 という名前のユーザーを作成し、IP アドレス 42.120.XX.XX から rds001 データベースにアクセスして管理する権限をユーザーに付与します。
CREATE USER `test001`@`42.120.XX.XX`IDENTIFIED BY 'passwd'; // ユーザー test001@42.120.XX.XX をパスワード 'passwd' で作成 GRANT PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'test001'@'42.120.XX.XX'; // test001@42.120.XX.XX に必要な権限を付与 GRANT ALL PRIVILEGES ON `rds001`.* TO 'test001'@'42.120.XX.XX'; // test001@42.120.XX.XX に rds001 データベースへのすべての権限を付与 GRANT SELECT ON mysql.* TO 'test001'@'42.120.XX.XX'; // test001@42.120.XX.XX に mysql データベースへの SELECT 権限を付与
説明すべての先行する文で IP アドレス 42.120.XX.XX をワイルドカード % に変更しない限り、RDS コンソールでユーザーの承認済みデータベースを表示することはできません。
次の文を実行して、IP アドレスを 42.121.XX.XX に変更できます。
RENAME USER `test001`@`42.120.XX.XX` TO `test001`@`42.121.XX.XX`; // ユーザー名を変更して IP アドレスを更新