Я пытаюсь получить доступ к информации из нескольких баз данных с одной учетной записью пользователя. Несмотря на то, что я уверен, что пользователь имеет права на обе базы данных, 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.
Кто-нибудь знает, как это можно исправить?
Если вы попробуете запрос, который просто обращается к таблице 'uac_bridge', он работает? – Barmar
Что означает «показать гранты для demos_barboek @ localhost' say? – Barmar
На первом; нет, это не работает, также если я использую USE database_b; первый. Во-вторых, я, к сожалению, не знаю, потому что у меня нет учетных записей пользователей, которые могут выполнять этот запрос. Я управляю грантами через DirectAdmin. P.S .: На самом деле, вызов USE databas_b также отрицается (ошибка 1044) –