Я намагаюся створити користувача MySQL, якому буде дозволено підключатися до бази даних MySQL лише з певного імені хоста.
дозволити всім на db_name. * на 'user_name'@'appserver-lan.mydomain.com', ідентифікований 'some_passwd'
Перевіряючи таблицю користувачів на mysql db, я бачу, що користувач був створений успішно:
використовувати mysql; виберіть * від користувача, де User = 'ім'я_користувача' та Host = 'appserver-lan.mydomain.com'
або
показати гранти для 'username'@'appserver-lan.mydomain.com'
Ім'я хоста, яке я вказав, є псевдонімом до імені amazon-ec2, яке при вирішенні DNS-серверів AWS призводить до локальної адреси:
[root @ db_server ~] # хост appserver-lan.mydomain.com
appserver-lan.mydomain.com - псевдонім для ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com має адресу 10.xxx .xxx.xxx
Проблема полягає в тому, що коли я намагаюся підключитися до бази даних LAN IP від цього додатка-lan, я отримую помилку в доступі, відхилену в доступі, хоча пароль правильний. Дивна справа в тому, що ім'я хоста, вказане помилкою, не є ім'ям хоста, яке я вказав, коли користувач створювався:
ПОМИЛКА 1045 (28000): Відмовлено в доступі для користувача 'ім'я користувача' @ ' appserver.mydomain.com ' (з використанням пароля: ТАК)
Отже, моє запитання: як mysql визначає ім'я хоста клієнта? Я вважаю, що це не відбувається за допомогою зворотного пошуку DNS, оскільки я перевірив, і він не вказує на "appserver.mydomain.com", а також на "appserver-lan.mydomain.com". Крім того, на db-сервері немає записів, пов’язаних із додатком на / etc / hosts.
Підводячи підсумок, я впевнений, що це проблема вирішення імені хоста, оскільки надання пільг для хоста "%" або для IP-адреси локальної мережі працює просто чудово.
Будь-які ідеї того, чого мені не вистачає?
host -t PTR 10.1.2.3
?