I’ve stablished an user that will be used for reporting in my Database. I’ve granted just SELECT privileges over the necessary database.
I’m able to log into MySQL from phpMyAdmin for example and I do with the user what is supposed to do.
However, the following error arises once you try to read from an ODBC:
[MySQL][ODBC 3.51 Driver]Access denied for user user@server_ip (using password: YES)
Do I need to do something extra? The access with root doesn’t have this problems but, obviously, I don’t want to grant all permissions to that user for security reasons.
You must first make sure that the user has your desired access when it connects locally. You can test this using the MySQL Query Browser or MySQL Command Line client.
Now, if there is no issue when tested locally, and if the root user is able to access the tables from the remote machine, then something must be wrong with the user’s permissions which prevents it from accessing the tables from the remote host. Check if you have correctly granted the needed permissions to the user. Here is the correct syntax:
See Adding User Accounts in MySQL Reference Manual.