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

Dan*_*Dan 59 amazon-web-services amazon-rds

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

and*_*ery 57

您最好的选择可能是使用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'@'%';
Run Code Online (Sandbox Code Playgroud)

在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


小智 35

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

您不能将GRANT ALL任何用户用于RDS.当您使用GRANT ALL您也尝试提供的语句Global(作为AWS Calls Super Permissions)时,以及AWS RDS系统的设置方式,它们不允许为用户分配全局选项.

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

GRANT SELECT,INSERT,UPDATE,DELETE,DROP on

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

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

沃尔多

  • 对于RDS,您可以为数据库上的用户添加的最大权限是SELECT,ALTER,UPDATE,INSERT,CREATE,DELETE,DROP,INDEX,REFERENCES (6认同)

Sad*_*dee 12

我这样创建:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'localhost';
Run Code Online (Sandbox Code Playgroud)

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

CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'somepassword';
GRANT SELECT ON mydatabase.* TO 'jeffrey'@'%';
Run Code Online (Sandbox Code Playgroud)

然后只有我能够通过这个新用户登录.


Chr*_* M. 8

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

CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

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

Grant ALL on *.* to 'foo'@'localhost'
Run Code Online (Sandbox Code Playgroud)

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

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

麻烦的许可是RDS没有给我的"超级",反过来我不能授予.结果,我卡住了手工权限:

Grant SELECT on *.* to 'foo'@'localhost';
Grant INSERT on *.* to 'foo'@'localhost';
Grant CREATE on *.* to 'foo'@'localhost';
Run Code Online (Sandbox Code Playgroud)

  • 如果您在数据库中授予所有权限.*到'foo'@'localhost'您可能会获得更多成功.*将包括系统数据库(模式). (3认同)

小智 5

我使用了mySQL工作台,它工作正常.只需转到管理/用户和权限,按左下角的"添加帐户"按钮,然后进行配置.你不能给予SUPER特权,但其余大多数都是