Мы можем создавать пользователей в MySQL, которые разрешены с определенного IP-адреса или диапазона IP-адресов. Например, CREATE USER 'username' @ 'IP' IDENTIFIED BY ... Здесь, если я укажу конкретный IP-адрес, это означает, что пользователи из этого IP-адреса могут получить доступ к MySQL. Теперь существует потребность в балансировщике нагрузки (HAProxy) поверх многих узлов MySQL за ним. Проблема заключается в следующем: когда запрос поступает из HAProxy в MySQL, это IP-адрес HAProxy, который поступает в MySQL. Таким образом, способ, которым я хочу использовать IP при создании пользователя, не работает. Мой вопрос, в частности, относится только к этому USE-CASE, и я хотел бы знать, есть ли какое-либо решение для этого?Пересылка HAProxy IP в MySQL для управления доступом пользователей на основе IP
0
A
ответ
0
Вы должны создать пользователя с IP-адресом haproxy, поскольку от него будет поступать DB-трафик.
Вместо конкретных IP-адресов вы также можете выбрать подстановочные IP-адреса, например. [email protected]%
. Пользователи могут получить доступ к MySQL с компьютеров с IP-адресами, начиная с 10.10.10
. Если обе машины DB и haproxy находятся в одной сети (10.10.10.x), вам нужно создать только одну учетную запись.
Исследуйте больше возможностей в документации: https://dev.mysql.com/doc/refman/5.7/en/account-names.html
Если вы решили полностью перейти пользователей использовать прокси-сервер для доступа к MySQL, вы можете изменить host
из них учетной записи пользователя, как указано здесь: https://stackoverflow.com/a/12045483/255523
Безразлично «Я решу проблему, поскольку мне приходится создавать конкретных пользователей для определенных IP-адресов. – siddhusingh
У вас нет выбора, кроме как указать IP-адреса, где вы ожидаете подключения. В вашем случае это haproxy. Что вы можете сделать, это свести к минимуму объем работы, необходимой для перехода пользователей, например. perms, names и т. д. Проверьте это: http://stackoverflow.com/a/12045483/255523 –