在Amazon RDS环境中创建新的MySQL用户

时间:2012-04-17 20:09:29

标签: amazon-web-services amazon-rds

我需要在现有的Amazon RDS实例上创建一个具有有限权限的新MySQL用户。在遇到一些错误消息后,我有点能够使用官方MySQL管理员工具执行此操作,用户现在出现在列表中。但是,我无法分配任何架构权限,因为所有用户都显示为灰色。我以实例启动时创建的“主用户”身份登录。不知道从哪里开始。我确实安装了RDS命令行工具,但无法跟踪任何内容。想法

5 个答案:

答案 0 :(得分:51)

您最好的选择可能是使用mysql命令行客户端连接到数据库,并调用SQL命令来创建新用户并为其分配权限。

例如,你可能会运行这样的东西:

mysql -u [your_master_username] -p -h YOURRDSENDPOINT.rds.amazonaws.com

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword';
GRANT SELECT ON [your_database].[some_table] TO 'jeffrey'@'%';

在Windows上,您可以使用mysql.exe客户端,无论它在哪里。

有用的文档

AWS RDS安全组文档(常见的混淆区域):http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithSecurityGroups.html

用户创建文档:http://dev.mysql.com/doc/refman/5.5/en/create-user.html

授予权限文档:http://dev.mysql.com/doc/refman/5.5/en/grant.html

答案 1 :(得分:32)

我知道这个帖子已经有几年了,而且我一直在寻找它,所以我希望获得有关AWS RDS和用户权限的更新。

对于任何拥有RDS的用户,您都不能使用GRANT ALL。当您使用GRANT ALL语句时,您还尝试提供Global(因为AWS调用它们Super Permissions),并且通过AWS RDS系统的设置方式,它们不允许分配全局用户选项。

您必须将权限分解为以下内容:

GRANT SELECT,INSERT,UPDATE,DELETE,DROP on

这将允许您的用户在设置安全设置后能够连接到RDS,以允许从EC2实例或Internet访问。

希望此信息可以帮助遇到与我在AWS RDS系统中遇到的相同问题的其他任何人。

沃尔多

答案 2 :(得分:10)

我是这样创建的:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'localhost';

但是,AWS拒绝登录该用户。我试图改变管理员权限,但没有成功。我通过mysql workbench将'localhost'更改为'%'。 (或者您可以删除用户并重新创建),例如:

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'%';

然后我才能通过这个新用户登录。

答案 3 :(得分:7)

我最成功地使用MySQL Workbench并针对RDS执行原始SQL:

CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';

更大的问题是权限。最初我尝试过:

Grant ALL on *.* to 'foo'@'localhost'

...导致访问被拒绝错误。

Error Code: 1045. Access denied for user 'foo'@'%' (using password: YES)

麻烦的许可是RDS没有给我的“超级”,反过来我不能授予。结果,我被困在手边执行权限:

Grant SELECT on *.* to 'foo'@'localhost';
Grant INSERT on *.* to 'foo'@'localhost';
Grant CREATE on *.* to 'foo'@'localhost';

答案 4 :(得分:5)

我使用过mySQL工作台,它工作正常。只需转到管理/用户和权限,按"添加帐户"按钮左下方,并配置。你不能给予SUPER特权,但其余大部分都是