描述内置的 Azure MySQL 数据库角色

已完成

Azure 基于角色的访问控制 (RBAC) 允许你通过分配 Azure 角色来管理对 Azure 资源的访问。 RBAC 使用三个元素:

  • 安全主体 - 用户、组、服务主体或托管标识。
  • 角色定义 - 一组权限或限制。
  • 范围 - 将访问或限制应用到的上下文。

创建 Azure Database for MySQL 服务器时,它包含内置服务器角色,你还可以创建自定义角色。 Azure Database for MySQL 允许你从访问控制 (IAM) 菜单查看和更改对服务器的访问权限

添加角色分配

将角色定义分配给用户或组:

  1. 在 Azure 门户中,导航到你的 MySQL 服务器。 在左侧菜单中,选择“访问控制(IAM)”
  2. 从顶部菜单中选择“+ 添加”,然后选择“添加角色分配”。 将显示一个角色定义列表,其中包含每个角色定义的说明。
  3. 选择要分配的角色定义,然后选择“成员”
  4. 选择“将访问权限分配给用户、组或服务主体”
  5. 在“成员”旁,选择“+ 选择成员”。 此时会显示用户的列表。 选择一个或多个用户或组,然后选择“选择”
  6. 若要分配,请选择“查看 + 分配”

使用 Azure RBAC 控制对 Azure Database for MySQL 服务器的访问。 在单个数据库中,使用 SQL 查询来创建用户和配置用户权限。

注意

Azure RBAC 不影响数据库中的用户权限。 若要创建数据库用户,必须使用管理员凭据登录。 使用 MySQL Workbench 等客户端工具连接到数据库服务器。 若要创建非管理员用户,请使用 CREATE USER 语句。 将 db_user 替换为用户名,将 StrongPassword 替换为强密码,将 testdb 替换为你的数据库名称,然后执行以下代码:

CREATE USER 'db_user'@'%' IDENTIFIED BY 'StrongPassword!';

GRANT ALL PRIVILEGES ON testdb . * TO 'db_user'@'%';

FLUSH PRIVILEGES;

可以使用 SHOW GRANTS 语句验证权限,再次将占位符值替换为你的值:

USE testdb;

SHOW GRANTS FOR 'db_user'@'%';

若要定义用户可以使用数据库执行的操作,请使用 GRANT 语句,将占位符值替换为你的值:

CREATE USER 'new_master_user'@'%' IDENTIFIED BY 'StrongPassword!';

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;

FLUSH PRIVILEGES;

注意

本文包含对术语“从属”的引用,这是 Microsoft 不再使用的术语。 在从软件中删除该术语后,我们会将其从本文中删除。