Sto cercando di creare un utente MySQL a cui sarà consentito connettersi al database MySQL solo da un nome host specifico.
concedi tutto su db_name. * a 'user_name'@'appserver-lan.mydomain.com' identificato da 'some_passwd'
Controllando la tabella degli utenti sul database mysql, posso vedere che l'utente è stato creato correttamente:
usa mysql; seleziona * dall'utente dove User = 'nome_utente' e Host = 'appserver-lan.mydomain.com'
o
mostra sovvenzioni per 'nomeutente'@'appserver-lan.mydomain.com'
Il nome host che ho specificato è un alias di un nome amazon-ec2, che una volta risolto dai server DNS AWS genera un indirizzo LAN:
[root @ db_server ~] # host appserver-lan.mydomain.com
appserver-lan.mydomain.com è un alias per ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com ha l'indirizzo 10.xxx .xxx.xxx
Il problema è che quando provo a connettermi al database LAN IP da questo appserver-lan, ottengo un errore di accesso negato, sebbene la password sia corretta. La cosa strana qui è che il nome host mostrato nell'errore non è il nome host che avevo specificato al momento della creazione dell'utente:
ERRORE 1045 (28000): Accesso negato per l'utente 'nome_utente' @ ' appserver.mydomain.com ' (utilizzando la password: SÌ)
Quindi, la mia domanda è: come fa mysql a determinare il nome host del client? Credo che non lo faccia con una ricerca DNS inversa, poiché ho controllato e non punta a "appserver.mydomain.com" né a "appserver-lan.mydomain.com". Inoltre, il server db non ha voci relative al appserver su / etc / hosts.
Riassumendo, sono abbastanza sicuro che sia un problema di risoluzione del nome host, dal momento che la concessione dei privilegi per l'host "%" o per l'IP LAN funziona bene.
Qualche idea su cosa mi sto perdendo?
host -t PTR 10.1.2.3
?