我已经建立了一个将用于数据库中报告的用户。我只授予了必要数据库的SELECT特权。

例如,我能够从phpMyAdmin登录到MySQL,并且与用户一起进行应该做的事情。

但是,一旦您尝试从ODBC读取,就会出现以下错误:

[MySQL][ODBC 3.51 Driver]Access denied for user user@server_ip (using password: YES)

我需要做些额外的事情吗?使用root的访问不会出现此问题,但是显然,出于安全原因,我不想授予该用户所有权限。

最佳答案

您必须首先确保用户在本地连接时具有所需的访问权限。您可以使用MySQL查询浏览器或MySQL命令行客户端对此进行测试。

现在,如果在本地测试时没有问题,并且root用户能够从远程计算机访问表,那么用户权限一定存在问题,这将阻止它从远程主机访问表。检查您是否已正确授予用户所需的权限。这是正确的语法:

mysql> CREATE USER 'custom'@'host47.example.com' IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ->     ON expenses.*
    ->     TO 'custom'@'host47.example.com';


请参见《 MySQL参考手册》中的Adding User Accounts

关于mysql - 如何在MySQL中设置要与ODBC一起使用的用户?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12529198/

10-11 19:30
查看更多