sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg få MySQL til at skrive outfiler som en anden bruger?

Outputfilen oprettes af mysqld-processen, ikke af din klientproces. Derfor skal outputfilen ejes af mysqld-processens uid og gid.

Du kan undgå at skulle sudo for at få adgang til filen, hvis du tilgår den fra en proces under en uid eller gid, der kan få adgang til filen. Med andre ord, hvis mysqld opretter filer, der ejes af uid og gid "mysql"/"mysql", så tilføj din egen konto til gruppen "mysql". Så skulle du være i stand til at få adgang til filen, forudsat at filens tilladelsestilstand inkluderer gruppeadgang.

Rediger:

Du sletter en fil i /tmp med en mappetilladelsestilstand rwxrwxrwt. Den sticky bit ('t') betyder, at du kun kan fjerne filer, hvis din uid er den samme som ejeren af ​​filen, uanset tilladelser til filen eller mappen.

Hvis du gemmer din outputfil i en anden mappe, der ikke har den sticky bit sat, bør du være i stand til at fjerne filen normalt.

Læs dette uddrag fra man-siden for sticky(8):

KLÆBARE MOBILER

En mappe, hvis 'sticky bit' er indstillet, bliver en mappe, der kun kan tilføjes, eller mere præcist en mappe, hvor sletning af filer er begrænset. En fil i en sticky mappe må kun fjernes eller omdøbes af en bruger, hvis brugeren har skrivetilladelse til mappen og brugeren er ejeren af ​​filen, ejeren af ​​mappen eller superbrugeren. Denne funktion er nyttigt anvendt på mapper såsom /tmp, som skal være offentligt skrivbare, men bør nægte brugere licensen til vilkårligt at slette eller omdøbe hinandens filer.



  1. Hvilke DBMS'er tillader en rækkefølge af en attribut, som ikke er til stede i select-klausulen?

  2. Kan ikke få adgang til Google Cloud SQL-databasen fra min App Engine

  3. MySQL-eksport til outfil:CSV-undslippende tegn

  4. Tips til lagring af PostgreSQL-sikkerhedskopier på Google Cloud (GCP)