跳至内容

如何为我的 Amazon RDS for MySQL 数据库实例创建另一个管理用户?

2 分钟阅读
0

我想创建另一个对我的 Amazon Relational Database Service (Amazon RDS) for MySQL 数据库实例拥有管理员账户权限的用户。

解决方法

默认情况下,Amazon RDS for MySQL 有一个主管理账户。最佳做法是创建另一个具有最低权限的用户与您的应用程序配合使用。有关详细信息,请参阅 RDS for MySQL 的基于角色的权限模型

**注意:**根据您使用的 MySQL 版本,您还可以运行 GRANT 命令为用户附加动态权限

对于 MySQL 8.0.36 及更高版本

要使用 rds_superuser_role 向用户授予基于角色的权限,请完成以下步骤:

  1. 作为主要管理用户,运行 SHOW GRANTS 命令以查看 rds_superuser_role 角色的权限列表:

    SHOW GRANTS FOR rds_superuser_role@'%';
  2. 运行 CREATE USER 命令来创建新的管理用户:

    CREATE USER 'new_admin_user'@'%' IDENTIFIED BY 'password';
  3. 运行 GRANT 命令将新角色授予新用户:

    grant rds_superuser_role to 'new_admin_user'@'%';
  4. 运行以下命令为新用户启用 rds_superuser_role

    set role all;
  5. 运行以下查询以验证您是否向新用户授予了 rds_superuser_role

    select current_role();

    输出示例:

    +--------------------------+  
    | current_role() |  
    +--------------------------+  
    | `rds_superuser_role`@`%` |  
    +--------------------------+

对于低于 8.0.36 的 MySQL 版本

完成以下步骤:

  1. 连接到 RDS for MySQL 数据库实例

  2. 运行以下命令来获取管理账户当前可使用的权限列表:

    SHOW GRANTS for admin_username;

    **注意:**将 admin_username 替换为您的用户名。

  3. 复制您在步骤 5 中使用的权限列表的输出。
    输出示例:

    +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Grants for admin@% |  
    +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+  
    | 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 'admin'@'%' WITH GRANT OPTION |  
    +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4. 运行以下命令以创建新用户:

    CREATE USER 'new_admin_user'@'%' IDENTIFIED BY 'password';

    **注意:**将 new_admin_userpassword 替换为您的用户名和密码。

  5. 运行以下 GRANT 命令并包括您在步骤 2 中获得的要附加到新用户的权限列表:

    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_admin_user'@'%' WITH GRANT OPTION;
  6. 使用新用户登录。

  7. 运行以下查询以验证您是否向新的管理用户授予了权限:

    SHOW GRANTS for admin_username;

    **注意:**将 admin_username 替换为您的用户名。

相关信息

MySQL 数据库实例的数据库管理员常见任务

如何允许用户通过其 IAM 凭证向 Amazon RDS for MySQL 数据库实例进行身份验证?