Adgang til filsystemet ved hjælp af SQL

Jeg er for nylig stødt på en smart måde at få adgang til filsystemet og hente værdifulde oplysninger, såsom eksistensen af filer og mapper eller deres indhold. Dette kan være meget nyttigt som et alternativ til PHP-funktionen ` file_exists` , da oplysningerne om eksistensen af filen/filerne kan bruges i forespørgslen til yderligere sorterings- og aggregeringsfunktioner.


Forudsat at den tilknyttede databasebruger har FILE-rettigheder , kan kommandoen bruges

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Under forespørgslen skal du ikke kun kontrollere, om der findes en fil, men også læse dens indhold ud.

På Windows-systemer skal det bemærkes, at tilbageslag i stien til filen skal markeres i overensstemmelse hermed (eksempel: C: \\ Windows \\ System32 \\ drivere \\ osv \\ værter). Sikkerhedsaspektet bør heller ikke ignoreres fuldstændigt, da når FILE-privilegiet tildeles, betyder adgang til databasen automatisk adgang til resten af ​​filsystemet.

For at sikre, at ikke kun NULL-værdier returneres, skal det sikres, at den bruger, der kører MySQL, har læserettigheder.

For at få adgang til store filer skal den globale ejendom "max_allowed_packet", der er indstillet til 1 MB, øges.

mysql -u... -p...
set global max_allowed_packet = 1024 * 1024 * 512;
exit;

Du kan nu (efter genstart af serveren) få adgang til filer, der er op til 512 MB i størrelse.

Tilbage