У меня есть БД MySQL с пользователем, который имеет доступ только к нескольким таблицам. Этот пользователь получил CREATE TEMPORARY TABLES
для этой базы данных и, просмотрев журналы запросов, я вижу, как они создают временную таблицу, а затем сбой при попытке выбрать из нее. Выполнение GRANT SELECT ON TABLE 'db'.'tmp_tbl' TO 'user'@'localhost';
не работает, поскольку таблица не существует в этой точке.grant select for временная таблица в MySQL
The user comments on this page предлагаю взломать это, но я бы ожидал, что там будет лучше.
Код, который использует это Сорта, как это:
CREATE TEMPORARY TABLE t1 SELECT id FROM real1 LIMIT 10;
CREATE TEMPORARY TABLE t2 SELECT id FROM real2 LIMIT 10;
SELECT * FROM t1;
SELECT * FROM t2;
SELECT * FROM t1 JOIN t2 JOIN real3 AS r ON t1.id = r.a AND t2.id = r.b;
В этом случае, все дело в том, что данные (или, по крайней мере некоторые из них) находится под напряжением.
Мне нужны результаты из первых двух запросов, а значения для соединения в третьем должны быть одинаковыми, поэтому использование подзапросов не будет работать.