使用来自多个数据库的信息与一个用户
问题描述:
我想用一个用户帐户从多个数据库访问信息。尽管我确信用户对这两个数据库都有权限,但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
我已删除从代码中的一些名字和笨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授权(但没有其他人)(通过管理向导配置)的用户。我已确认用户可以通过登录到phpMyAdmin来读取database_b中的数据。
有谁知道如何解决这个问题?
答
仅供参考,答案很简单,MySQL数据库名称在Linux上不区分大小写,但不在Windows上(https://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html)。
这是错误,我没有提到右大写的数据库,MySQL给出了一个不允许的错误,因为它不能识别数据库名称。
如果您尝试只访问uac_bridge表的查询,它会起作用吗? – Barmar
什么'显示demos_barboek @ localhost'授权说? – Barmar
第一个;不,这不起作用,如果我做USE database_b;第一。第二,我不知道,因为我没有任何用户帐户可以执行该查询。我通过DirectAdmin控制赠款。 P.S .:实际上,USE databas_b调用也被拒绝(错误1044) –