Maison >base de données >tutoriel mysql >Pourquoi \'SELECT * INTO OUTFILE LOCAL\' est-il désactivé dans MySQL mais \'LOAD DATA LOCAL INFILE\' reste disponible ?
La commande « SELECT * INTO OUTFILE » de MySQL, autrefois utilisée pour l'extraction simple de données, est devenue restreinte pour des raisons de sécurité. Cependant, la commande 'LOAD DATA LOCAL INFILE' reste fonctionnelle, laissant les utilisateurs se demander pourquoi l'option 'SELECT INTO OUTFILE LOCAL' correspondante n'est pas disponible.
Pourquoi 'LOAD DATA LOCAL INFILE' fonctionne-t-il ?
'LOAD DATA LOCAL INFILE' permet d'importer des données depuis un fichier local sur le serveur hébergeant MySQL. Sa fonctionnalité est uniquement confinée au serveur, éliminant ainsi les problèmes de sécurité, c'est pourquoi elle reste disponible.
Pourquoi ne pas « SELECT INTO OUTFILE LOCAL » ?
« SELECT INTO OUTFILE' a l'intention d'exporter les données dans un fichier texte sur le serveur lui-même. Toutefois, si ce fichier est destiné à une destination distante, des mesures de sécurité empêchent cette action. Contrairement à « LOAD DATA INFILE », qui fonctionne au sein du serveur, « SELECT INTO OUTFILE » pourrait potentiellement permettre aux données d'être extraites du serveur et transférées vers un emplacement externe, créant ainsi une faille de sécurité.
Alternative Approches
Pour atténuer ce risque de sécurité, vous pouvez utiliser l'outil de ligne de commande « mysql », comme indiqué dans l'exemple fourni dans la question d'origine. En redirigeant la sortie d'une requête « SELECT » vers un fichier à l'aide de « > », vous pouvez transférer efficacement des données vers une destination locale ou distante, sans compromettre la sécurité du serveur.
Fonctionnalité MariaDB
MariaDB, un fork de MySQL, restreint également la commande 'SELECT INTO OUTFILE' en raison de problèmes de sécurité similaires. Cependant, il prend en charge la commande 'LOAD DATA LOCAL INFILE', permettant l'importation de données à partir de fichiers du serveur local.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!