使用来自多个数据库的信息与一个用户

时间:2014-03-05 16:08:49

标签: php mysql user-accounts multiple-databases

我尝试使用一个用户帐户从多个数据库访问信息。尽管我非常确定用户对两个数据库都有权限,但是MySQL拒绝了我在第二个数据库上的SELECT查询。

我的SQL查询如下所示:

SELECT a.id AS id, a.name AS a_name, b.naam AS b_name
FROM accounts a
LEFT JOIN database_b.uac_bridge bridge ON a.id = bridge.foreign_id
LEFT JOIN database_b.leden b ON b.id = bridge.master_id
WHERE a.active=1

我从代码中删除了一些名称,并从CodeIgniter ActiveRecord中进行了音译,所以我希望查询中没有拼写错误。我相当肯定查询本身是正确的,它在我的开发机器上运行良好(Windows 7,MySQL 5.5.14)但在服务器上运行失败(不确定是什么操作系统,某些Linux版本,MySQL 5.5.27)。

我收到以下错误消息:

Error Number: 1142
SELECT command denied to user 'username'@'localhost' for table 'uac_bridge'

登录的用户是为database_a创建的,并且在database_b上具有SELECT授权(但没有其他授权)(通过DirectAdmin配置)。我已经确认用户可以通过登录phpMyAdmin来读取database_b中的数据。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

作为参考,答案很简单,MySQL数据库名称在Linux上区分大小写但在Windows上不区分大小写(https://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html)。

这是错误,我没有用正确的大写字母引用数据库,MySQL没有给出无权限错误,因为它无法识别数据库名称。