首页 文章

Mysql允许用户仅从特定DNS连接

提问于
浏览
2

我正在使用亚马逊RDS和亚马逊EC2 .

对于亚马逊EC2,我配置了负载均衡器,我将来会使用自动校准 .

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

例如:我在mysql 'test-user' @ 'test.com'中创建用户并尝试从我的EC2实例连接我有一条错误消息:访问权限为用户'test-user' @'我的ec2实例的私有IP在这里' .

所以我不能在mysql中使用ip地址,因为我将使用autoscalling,而amazon将创建具有未知ip的新实例,并且mysql没有解析我的实例的主机名 .

你有什么想法?

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

是的,当然,我有安全小组 . 但是在这种情况下它并不合适,因为对于安全组,我只允许从我的VPC内部的实例连接到数据库 . 我需要将数据库的访问权限授予另一个人,但我想创建具有只读访问权限的用户(仅选择)

1 回答

  • 1

    需要注意的一件事是你在MySQL授权中使用can use wildcards,例如 test-user@'192.168.123.*' . 您可以授予对实例启动的子网的访问权限 .

    您也可以使用网络掩码,这可能更合适 - 例如 test-user@'192.168.123.0/255.255.255.0' . 有关更多信息,请参阅documentation .

    它似乎也可以使用DNS(根据同一篇文章),但正如迈克尔指出的那样,它与负载均衡器的DNS名称无关 . 我认为它必须是一个DNS名称,解析为您的实例的IP地址 . 这只会在您的授权中使用通配符时帮助您(例如 test-user@'%.my-autoscaling-instances.mydomain.com' 并且每个自动缩放框都有一个DNS条目 . 我不确定这种机制是如何工作的,而且我是一个很好的方法 .

相关问题