Tôi đang cố gắng tạo một người dùng MySQL sẽ chỉ được phép kết nối với cơ sở dữ liệu MySQL từ một tên máy chủ cụ thể.
cấp tất cả trên db_name. * cho 'user_name'@'appserver-lan.mydomain.com' được xác định bởi 'some_passwd'
Bằng cách kiểm tra bảng người dùng trên db mysql, tôi có thể thấy rằng người dùng đã được tạo thành công:
sử dụng mysql; chọn * từ người dùng trong đó User = 'user_name' và Host = 'appserver-lan.mydomain.com'
hoặc là
hiển thị các khoản tài trợ cho 'username'@'appserver-lan.mydomain.com'
Tên máy chủ tôi đã chỉ định là bí danh cho tên amazon-ec2, khi được giải quyết bởi các máy chủ DNS AWS sẽ dẫn đến một địa chỉ LAN:
[root @ db_server ~] # máy chủ ứng dụng máy chủ-lan.mydomain.com
appserver-lan.mydomain.com là bí danh cho ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com có địa chỉ 10.xxx .xxx.xxx
Vấn đề là khi tôi cố gắng kết nối với cơ sở dữ liệu LAN IP từ máy chủ ứng dụng này, tôi gặp lỗi từ chối truy cập, mặc dù mật khẩu là chính xác. Điều kỳ lạ ở đây là tên máy chủ hiển thị trong lỗi không phải là tên máy chủ tôi đã chỉ định khi người dùng được tạo:
LRI 1045 (28000): Truy cập bị từ chối đối với người dùng 'user_name' @ ' appserver.mydomain.com ' (sử dụng mật khẩu: CÓ)
Vì vậy, câu hỏi của tôi là: làm thế nào để mysql xác định tên máy chủ của khách hàng? Tôi tin rằng nó không làm như vậy bằng cách tra cứu DNS ngược, vì tôi đã kiểm tra và nó không trỏ đến "appserver.mydomain.com" cũng không phải là "appserver-lan.mydomain.com". Ngoài ra, máy chủ db không có mục nào liên quan đến máy chủ ứng dụng trên / etc / hosts.
Tóm tắt, tôi khá chắc chắn đó là vấn đề giải quyết tên máy chủ, vì việc cấp đặc quyền cho máy chủ "%" hoặc cho IP LAN hoạt động tốt.
Bất cứ ý tưởng về những gì tôi đang thiếu?
host -t PTR 10.1.2.3
?