Estoy tratando de crear un usuario MySQL que solo podrá conectarse a la base de datos MySQL desde un nombre de host específico.
conceder todo en db_name. * a 'user_name'@'appserver-lan.mydomain.com' identificado por 'some_passwd'
Al verificar la tabla de usuario en mysql db, puedo ver que el usuario se creó con éxito:
usa mysql; seleccione * del usuario donde Usuario = 'nombre_usuario' y Host = 'appserver-lan.mydomain.com'
o
mostrar subvenciones para 'username'@'appserver-lan.mydomain.com'
El nombre de host que especifiqué es un alias para un nombre amazon-ec2, que cuando los servidores DNS de AWS resuelven da como resultado una dirección LAN:
[root @ db_server ~] # host appserver-lan.mydomain.com
appserver-lan.mydomain.com es un alias para ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com tiene la dirección 10.xxx .xxx.xxx
El problema es que cuando intento conectarme a la base de datos LAN IP de este servidor de aplicaciones, obtengo un error de acceso denegado, aunque la contraseña es correcta. Lo extraño aquí es que el nombre de host que se muestra en el error no es el nombre de host que había especificado cuando se creó el usuario:
ERROR 1045 (28000): acceso denegado para el usuario 'nombre_usuario' @ ' appserver.mydomain.com ' (usando la contraseña: SÍ)
Entonces, mi pregunta es: ¿cómo determina mysql el nombre de host del cliente? Creo que no lo hace mediante una búsqueda inversa de DNS, ya que verifiqué y no apunta a "appserver.mydomain.com" ni a "appserver-lan.mydomain.com". Además, el servidor db no tiene entradas relacionadas con el servidor de aplicaciones en / etc / hosts.
En resumen, estoy bastante seguro de que es un problema de resolución de nombre de host, ya que otorgar privilegios para el host "%" o para la LAN IP funciona bien.
¿Alguna idea de lo que me falta?
host -t PTR 10.1.2.3
?