J'ai une base de données MySQL avec un utilisateur qui n'a accès qu'à quelques tables. Cet utilisateur a été accordé CREATE TEMPORARY TABLES
pour cette base de données et en regardant les journaux de requête, je peux les voir créer une table temporaire, puis échouer en essayant d'en sélectionner. Faire GRANT SELECT ON TABLE 'db'.'tmp_tbl' TO 'user'@'localhost';
ne fonctionne pas car la table n'existe pas à ce stade. Suggérer un hack pour le faire mais je m'attendrais à ce qu'il y ait une meilleure façon de faire.subvention sélectionnez pour la table temporaire dans MySQL
Le code qui utilise est sorta comme ceci:
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;
Dans ce cas, le fait est que les données (ou au moins une partie de celui-ci) est en direct.
J'ai besoin des résultats des deux premières requêtes et les valeurs de la jointure dans le troisième sont les mêmes, donc l'utilisation des sous-requêtes ne fonctionnera pas.