Åtkomst till filsystemet med SQL

Jag kom precis över ett trevligt alternativ i MySQL att utnyttja filsystemet och få värdefull information, till exempel om förekomsten av filer och mappar eller deras innehåll. Detta kan vara till stor hjälp som ett alternativ till php-funktionen file_exists , eftersom informationen om förekomsten av filen / filerna fortfarande kan användas i frågan för ytterligare sorterings- och aggregeringsfunktioner.


Om den associerade databasanvändaren har FILE-behörighet kan du använda kommandot

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Under förfrågan inte bara kontrollera om en fil existerar utan också läsa upp dess innehåll.

På Windows-system bör det noteras att bakåtvända snedstreck i sökvägen till filen måste markeras därefter (exempel: C: \\ Windows \\ System32 \\ drivrutiner \\ etc \\ värdar). Säkerhetsaspekten bör inte heller ignoreras helt, eftersom när FILE-privilegiet beviljas innebär åtkomst till databasen automatiskt tillgång till resten av filsystemet.

För att säkerställa att inte bara NULL-värden returneras måste det säkerställas att användaren som kör MySQL har läsrättigheter.

För att komma åt stora filer måste den globala egenskapen "max_allowed_packet", som är inställd på 1 MB, ökas.

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

Du kan nu (efter omstart av servern) komma åt filer som är upp till 512 MB stora.

Tillbaka