昨天我从 Azure 市场部署了一个 MySQL 数据库映像。就是这个微软发布的。我可以连接到我在 Azure 门户中指定的用户,并且能够创建一个额外的用户用于测试目的,并授予它在两个不同数据库上的所有权限。但是,如果今天尝试做同样的事情,我会得到臭名昭著的Error Code: 1044. Access denied for user 'admin'@'%' to database 'mysql'
. 我读过 Azure 上的一些 MySQL 版本不支持用户权限处理,但我已经能够使用这个映像版本来做到这一点。我什至验证了创建的用户可以访问指定的数据库并且从中插入/选择数据也可以正常工作。我尝试使用新的 testuser 设置一个新的数据库无济于事,因为我收到了同样的错误。这基本上就是我所做的:
CREATE USER 'user'@'%' IDENTIFIED BY 'pw';
GRANT INSERT ON db.* TO 'user'@'%' IDENTIFIED BY 'pw';
FLUSH PRIVILEGES;
创建用户后,我还检查SHOW GRANTS FOR 'user'@'%'
了给定的权限,他们在那里。Azure 门户中指定的管理员用户也具有 grant_priv 权限。有人可以帮我理解为什么我突然无法向新创建的用户授予简单的权限吗?正如微软员工的这篇博文所建议的那样,这应该是可能的。显然我遗漏了一些东西,因为应该包括这样的基本功能。