Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je souhaiterais supprimer un fichier de mon linux en passant pas une procédure stockée.
Est-il possible de le faire ? soit en le supprimant directement, soit en appelant un script ??
J'ai cherché sur le net, je ne trouve pas mon bonheur...
Merci d'avance
Hors ligne
vous pouvez :
1/ creer une table avec la liste des fichiers a supprimer
2/ lancer de facon reguliere un script (perl, ...) qui va supprimer les fichiers et les lignes de la table
Hors ligne
Le langage PLPgSQL ne permet pas de le faire.
Si vous tenez vraiment à faire cela, vous devez passer soit par une procédure en C, soit un langage PL plus avancé comme PLPerl. Attention, pour avoir droit de faire des options fichiers, il faudra l'utiliser en mode 'Untrusted' : http://docs.postgresql.fr/9.0/plperl-trusted.html (donc installer le langage plperlu, et créer une fonction en plperlu, ce que seul un superutilisateur aura le droit de faire).
Par ailleurs, cette procédure s'exécutera en tant qu'utilisateur système postgresql, vérifiez donc que cet utilisateur aura le droit de faire ce que vous voulez.
Dernier point : c'est très dangereux. Vous donnez la possibilité à n'importe quel utilisateur pouvant exécuter cette procédure de supprimer un fichier. Si vous ne la blindez pas au maximum, vous courrez le risque qu'un utilisateur puisse supprimer arbitrairement un fichier sur votre serveur.
Marc.
Hors ligne
Le langage PLPgSQL ne permet pas de le faire.
Si vous tenez vraiment à faire cela, vous devez passer soit par une procédure en C, soit un langage PL plus avancé comme PLPerl..
Merci pour cette réponse rapide, au moins c'est clair! ;-)
Je vais donc peut être voir pour une procédure en C ou me faire un script a part...
Bonne journée !
Hors ligne
La procédure en C a un petit défaut par rapport à la procédure en plperlu : si vous faites une erreur et déclenchez un segfaut, vous crashez le processus postgresql, et vous déclenchez un redémarrage de l'ensemble du cluster (cela tue donc toutes les sessions).
Marc.
Hors ligne
Finalement mon choix est fait alors : script !!
Merci
Hors ligne
Pages : 1