在 Azure Database for MySQL 中创建用户

适用于:Azure Database for MySQL - 单一服务器 Azure Database for MySQL - 灵活服务器

重要

Azure Database for MySQL 单一服务器即将停用。 强烈建议升级到 Azure Database for MySQL 灵活服务器。 若要详细了解如何迁移到 Azure Database for MySQL 灵活服务器,请参阅 Azure Database for MySQL 单一服务器发生了什么情况?

本文介绍如何创建 Azure Database for MySQL 的用户。

注意

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

你在创建 Azure Database for MySQL 服务器时提供了服务器管理员用户名和密码。 有关详细信息,请参阅此快速入门。 你可以在 Azure 门户中确定你的服务器管理员用户名。

服务器管理员用户具有以下权限:

选择、插入、更新、删除、创建、放置、重载、处理、引用、索引、更改、显示数据库、创建临时表、锁定表、执行、复制从属、复制客户端、创建视图、显示视图、创建例程、更改例程、创建用户、事件、触发器

创建 Azure Database for MySQL 服务器后,你可以使用第一个服务器管理员帐户来创建更多用户,并向这些用户授予管理员访问权限。 你还可以使用该服务器管理员帐户来创建只能访问各个数据库架构的权限较低的用户。

注意

不支持 SUPER 权限和 DBA 角色。 请在“限制”一文中查看权限,以了解服务中不支持的权限。

服务器不支持 validate_passwordcaching_sha2_password 等密码插件。

创建数据库

  1. 获取连接信息和管理员用户名。

    若要连接到数据库服务器,需提供完整的服务器名称和管理员登录凭据。 你可以在 Azure 门户的服务器“概览”或“属性”页面中轻松地找到服务器名称和登录信息。

  2. 使用管理员帐户和密码连接到你的数据库服务器。 使用你的首选客户端工具,如 MySQL Workbench、mysql.exe 或 HeidiSQL。

注意

如果不确定如何连接,请参阅连接和查询单一服务器的数据连接和查询灵活服务器的数据

  1. 编辑并运行下面的 SQL 代码。 将占位符 db_user 替换为所需的新用户名。 将占位符 testdb 替换为数据库名称。

    此 SQL 代码创建名为 testdb 的新数据库。 然后,它将在 MySQL 服务中创建新用户,并为该用户授予针对新数据库架构 (testdb.*) 的所有权限。

    CREATE DATABASE testdb;
    

创建非管理员用户

创建数据库后,可以首先使用 CREATE USER MySQL 语句创建非管理员用户。

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

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

FLUSH PRIVILEGES;

验证用户权限

若要查看 testdb 数据库上用户 db_user 允许的权限,请运行 SHOW GRANTS MySQL 语句

USE testdb;

SHOW GRANTS FOR 'db_user'@'%';

使用新用户连接到数据库

登录到服务器,指定选定的数据库并使用新用户名和密码。 此示例显示了 MySQL 命令行。 使用此命令时,系统会提示你输入用户的密码。 使用你自己的服务器名称、数据库名称和用户名。 查看下表,了解如何连接单一服务器和灵活服务器。

服务器类型 使用情况
单台服务器 mysql --host mydemoserver.mysql.database.chinacloudapi.cn --database testdb --user db_user@mydemoserver -p
灵活服务器 mysql --host mydemoserver.mysql.database.chinacloudapi.cn --database testdb --user db_user -p

限制用户的权限

若要限制用户可以对数据库运行的操作类型,需要在 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;

关于 azure_superuser

所有 Azure Database for MySQL 服务器都是使用名为“azure_superuser”的用户创建的。 Azure 创建了一个系统帐户,用于管理服务器以执行监视、备份和其他定期维护。 待命工程师还可以使用此帐户在发生证书身份验证事件期间访问服务器,并且必须使用实时 (JIT) 进程请求访问。

后续步骤