2015-12-22 34 views
2

我使用的是亚马逊RDS和亚马逊EC2。Mysql允许用户只从特定DNS连接

对于亚马逊EC2我配置了负载平衡器,我将来会使用自动调节。

我想在我的RDS Mysql实例中创建用户,该实例只能从特定的DNS访问mysql。

例如:我有域名'test.com',它是负载均衡DNS的CNAME。当我在mysql'test-user'@test.com'中创建用户并尝试从我的EC2实例连接时,我收到一条错误消息:访问用户test'user'@'私人ip我的ec2实例在这里'。

所以我不能在mysql中使用ip地址,因为我打算使用自动缩放,而amazon会使用未知的ip创建新的实例,并且mysql没有解析我的实例的主机名。

你有什么想法吗?

更新时间:@FrédéricHenri的回答问题“您的RDS实例上有安全组吗?”

当然,我有安全组。但在这种情况下它不适用,因为通过安全组,我只能从VPC中的实例连接到数据库。我需要给另一个人提供数据库的访问权限,但是我想创建只读访问的用户(只能选择)

+0

您的RDS实例上是否有安全组? –

+1

您试图在逻辑上连接两个不相关的概念。当验证用户与您的网站的域名*无关时,主机名MySQL将会看到。 –

回答

1

有一点需要注意的是您在MySQL授权中的can use wildcards,如[email protected]'192.168.123.*'。您可以授予对您的实例启动的子网的访问权限。

您也可以使用网络掩码,这可能更合适 - 例如, [email protected]'192.168.123.0/255.255.255.0'。请参阅documentation了解更多信息。

它似乎也可以使用DNS(根据同一篇文章),但正如Michael指出的那样,它与负载均衡器的DNS名称无关。我认为它必须是一个解析为您的实例的IP地址的DNS名称。如果你在授权中使用了通配符(例如[email protected]'%.my-autoscaling-instances.mydomain.com',并且每个自动缩放框都有一个DNS条目),那么这只会对你有所帮助,我不确定这个机制究竟是如何工作的,我不相信这是一个好方法。