Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi \'SELECT * INTO OUTFILE LOCAL\' est-il désactivé dans MySQL mais \'LOAD DATA LOCAL INFILE\' reste disponible ?

Mary-Kate Olsen
Libérer: 2024-10-26 13:57:30
original
772 Les gens l'ont consulté

Why is 'SELECT * INTO OUTFILE LOCAL' Disabled in MySQL but 'LOAD DATA LOCAL INFILE' Remains Available?

Sécurité MySQL et transfert de fichiers : pourquoi ne puis-je pas utiliser « SELECT * INTO OUTFILE LOCAL » ?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!