Переадресация HAProxy IP на MySQL для контроля доступа пользователей на основе IP

Мы можем создавать пользователей в MySQL, которым разрешен определенный IP или диапазон IP-адресов. Например, CREATE USER 'username' @ 'IP' IDENTIFIED BY... Здесь, если я даю конкретный IP, это означает, что пользователи с этого IP могут иметь доступ только к MySQL. Теперь существует необходимость в балансировщике нагрузки (HAProxy) поверх многих узлов MySQL позади него. Проблема заключается в следующем: когда запрос приходит от HAProxy к MySQL, IP-адрес HAProxy приходит к MySQL. Таким образом, способ, которым я хочу использовать IP при создании пользователя, не работает. Мой вопрос касается только этого USE-CASE, и я хотел бы знать, есть ли какое-то решение для этого?

1 ответ

Вы должны создать пользователя с IP-адресом haproxy, так как оттуда будет поступать трафик БД.

Вместо определенных IP-адресов вы также можете выбрать подстановочные IP-адреса, например: user@10.10.10.%, Пользователи могут получить доступ к MySQL с компьютеров с IP-адресами, начиная с 10.10.10, Если компьютеры с БД и haproxy находятся в одной сети (10.10.10.x), вам нужно создать только одну учетную запись.

Узнайте больше о возможностях в документации: https://dev.mysql.com/doc/refman/5.7/en/account-names.html

Если вы решите полностью перевести пользователей на использование прокси для доступа к mysql, вы можете изменить host их учетной записи пользователя, как указано здесь: /questions/32652/perenaznachit-prava-dostupa-k-hostu-polzovatelyu-mysql/32658#32658

Другие вопросы по тегам