為什麼 MySQL 中禁用了'SELECT * INTO OUTFILE LOCAL”,但'LOAD DATA LOCAL INFILE”仍然可用?

Mary-Kate Olsen
發布: 2024-10-26 13:57:30
原創
880 人瀏覽過

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 的伺服器上的本機檔案匯入資料。它的功能僅限於伺服器,消除了安全性問題,這就是它仍然可用的原因。

為什麼不'SELECT INTO OUTFILE LOCAL'?

'SELECT INTO OUTFILE' 旨在將資料匯出到伺服器本身的文字檔案。但是,如果此文件用於遠端目標,則安全措施會阻止此操作。與在伺服器內操作的「LOAD DATA INFILE」不同,「SELECT INTO OUTFILE」可能允許從伺服器提取資料並將其傳輸到外部位置,從而產生安全漏洞。

替代方案方法

為了減輕這種安全風險,您可以使用「mysql」命令列工具,如原始問題中提供的範例所示。透過使用「>」將「SELECT」查詢的輸出重新導向到文件,您可以有效地將資料傳輸到本地或遠端目的地,而不會影響伺服器安全。

MariaDB 功能

MariaDB 是 MySQL 的一個分支,由於類似的安全問題,也限制了「SELECT INTO OUTFILE」指令。但是,它支援“LOAD DATA LOCAL INFILE”命令,允許從本機伺服器檔案匯入資料。

以上是為什麼 MySQL 中禁用了'SELECT * INTO OUTFILE LOCAL”,但'LOAD DATA LOCAL INFILE”仍然可用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板