2014-03-05 8 views
1

Я пытаюсь получить доступ к информации из нескольких баз данных с одной учетной записью пользователя. Несмотря на то, что я уверен, что пользователь имеет права на обе базы данных, 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 (сконфигурированный через DirectAdmin). Я подтвердил, что пользователь может читать данные в database_b, войдя в phpMyAdmin.

Кто-нибудь знает, как это можно исправить?

+0

Если вы попробуете запрос, который просто обращается к таблице 'uac_bridge', он работает? – Barmar

+0

Что означает «показать гранты для demos_barboek @ localhost' say? – Barmar

+0

На первом; нет, это не работает, также если я использую USE database_b; первый. Во-вторых, я, к сожалению, не знаю, потому что у меня нет учетных записей пользователей, которые могут выполнять этот запрос. Я управляю грантами через DirectAdmin. P.S .: На самом деле, вызов USE databas_b также отрицается (ошибка 1044) –

ответ

0

Для справки, ответ прост, имена базы данных MySQL чувствительны к регистру в Linux, но не в Windows (https://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html).

Это была ошибка, я не имел в виду базу данных в правильной капитализации, и MySQL дает ошибку отсутствия разрешения, поскольку она не распознает имя базы данных.

 Смежные вопросы

  • Нет связанных вопросов^_^