MySQL で「SELECT * INTO OUTFILE LOCAL」が無効になっているのに、「LOAD DATA LOCAL INFILE」は引き続き使用できるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-10-26 13:57:30
オリジナル
772 人が閲覧しました

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

MySQL のセキュリティとファイル転送: 'SELECT * INTO OUTFILE LOCAL' を使用できないのはなぜですか?

MySQL の 'SELECT * INTO OUTFILE' コマンドは、かつて使用されていました。簡単なデータ抽出は、セキュリティ上の理由から制限されています。ただし、「LOAD DATA LOCAL INFILE」コマンドは引き続き機能するため、ユーザーは、対応する「SELECT INTO OUTFILE LOCAL」オプションがなぜ利用できないのか疑問に思っています。

「LOAD DATA LOCAL INFILE」はなぜ機能するのですか?

「LOAD DATA LOCAL INFILE」を使用すると、MySQL をホストしているサーバー上のローカル ファイルからデータをインポートできます。その機能はサーバーにのみ限定されており、セキュリティ上の懸念が排除されているため、引き続き利用可能です。

Why Not 'SELECT INTO OUTFILE LOCAL'?

'SELECT INTO OUTFILE' は、サーバー自体上のテキスト ファイルにデータをエクスポートすることを目的としています。ただし、このファイルがリモート宛先を対象としている場合は、セキュリティ対策によりこのアクションは阻止されます。サーバー内で動作する「LOAD DATA INFILE」とは異なり、「SELECT INTO OUTFILE」ではサーバーからデータが抽出され、外部の場所に転送される可能性があり、セキュリティ上の脆弱性が生じます。

代替アプローチ

このセキュリティ リスクを軽減するには、元の質問で示されている例に示すように、「mysql」コマンドライン ツールを使用できます。 「>」を使用して「SELECT」クエリの出力をファイルにリダイレクトすることで、サーバーのセキュリティを損なうことなく、データをローカルまたはリモートの宛先に効果的に転送できます。

MariaDB の機能 MySQL のフォークである

MariaDB も、同様のセキュリティ上の懸念により、「SELECT INTO OUTFILE」コマンドを制限しています。ただし、「LOAD DATA LOCAL INFILE」コマンドをサポートしているため、ローカル サーバー ファイルからのデータのインポートが可能です。

以上がMySQL で「SELECT * INTO OUTFILE LOCAL」が無効になっているのに、「LOAD DATA LOCAL INFILE」は引き続き使用できるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!