2016-05-24 3 views
0

Nous pouvons créer des utilisateurs MySQL autorisés à partir d'une adresse IP ou d'une plage d'adresses IP particulière. Par exemple, CREATE USER 'nom d'utilisateur' @ 'IP' IDENTIFIÉ PAR ... Ici, si je donne une adresse IP particulière, cela signifie que les utilisateurs de cette adresse IP peuvent uniquement accéder à MySQL. Maintenant, il ya un besoin d'un équilibreur de charge (HAProxy) au-dessus de nombreux nœuds MySQL derrière lui. Le problème est le suivant: lorsqu'une requête vient de HAProxy vers MySQL, c'est l'IP de HAProxy qui vient à MySQL. Donc, la façon dont je veux utiliser l'IP tout en créant un utilisateur, ne fonctionne pas. Ma question concerne particulièrement cette USE-CASE et j'aimerais savoir s'il y a une solution pour cela?Transfert IP HAProxy vers MySQL pour contrôler l'accès utilisateur basé sur IP

Répondre

0

Vous devez créer un utilisateur avec l'adresse IP haproxy car le trafic DB proviendra de là.

Au lieu d'adresses IP spécifiques, vous pouvez également opter pour des adresses IP génériques, par ex. [email protected]%. Les utilisateurs peuvent accéder à MySQL à partir de machines avec des adresses IP à partir de 10.10.10. Si les machines DB et haproxy se trouvent sur le même réseau (10.10.10.x), il vous suffit de créer un compte.

Explorez plus d'options dans la documentation: https://dev.mysql.com/doc/refman/5.7/en/account-names.html

Si vous décidez de passer pleinement les utilisateurs à utiliser le proxy pour accéder à mysql, vous pouvez modifier le host de leur compte utilisateur comme mentionné ici: https://stackoverflow.com/a/12045483/255523

+0

doesn ne résoudrai pas mon problème car je dois créer des utilisateurs spécifiques pour des IP spécifiques. – siddhusingh

+0

Vous n'avez pas d'autre choix que de spécifier les adresses IP où les utilisateurs doivent se connecter. Dans votre cas, c'est haproxy. Ce que vous pouvez faire est de minimiser la quantité de travail dont vous avez besoin pour faire la transition entre les utilisateurs, par ex. perms, noms etc. Vérifiez cela: http://stackoverflow.com/a/12045483/255523 –