IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Comment changer les droits en PL/SQL sur un fichier UNIX créer par UTL_FILE


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 71
    Par défaut Comment changer les droits en PL/SQL sur un fichier UNIX créer par UTL_FILE
    Bonjour,
    J'ai une PL/SQL qui créé un fichier sous un environnement UNIX : cette PL/SQL est exécutée via un script UNIX sous l'utilisateur toto mais le fichier en sortie appartient à l'utilisateur ORACLE.
    Or, j'ai besoin de modifier ce fichier ensuite dans mon script UNIX et l'utilisateur toto n'a pas les droits.
    Y-a-t-il une possibilité via la PL/SQL de forcer le propriétaire ou les droits du fichier?

    Merci.

    Cordialement.

  2. #2
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 38
    Par défaut
    selon la document Oracle

    On UNIX systems, a file created by the FOPEN function has as its owner the owner of the shadow process running the instance. In the normal case, this owner is oracle. Files created using FOPEN are always writable and readable using the UTL_FILE subprograms, but non-privileged users who need to read these files outside of PL/SQL might need their system administrator to give them access.
    Vous pouvez toutefois faire un petit quelque chose en stored procedure Java qui irait modifier la permission du fichier..

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 71
    Par défaut
    Merci pour cette réponse.

    J'ai déjà essayé en java mais les droits ne se modifient pas si je ne suis pas propriétaire du fichier, ou alors il y a quelque chose qui m'échappe.
    Je vais creuser de nouveau de ce côté là.

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Je pense qu'ne fois le fichier crée vous pouvez exécuter un script batch sur le serveur via dbms_scheduler pour changer les droits sur le fichier en question.

  5. #5
    Membre actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 38
    Par défaut
    effectivement, mais si le fichier doit être traiter avant que le schéduleur passe, une procédure stocké en java va très bien faire l'affaire, il suffirait d'appeler une commande shell qui irait modifier les droits du fichier directement.

  6. #6
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par dbaste Voir le message
    effectivement, mais si le fichier doit être traiter avant que le schéduleur passe....
    Le scheduler passe tout de suite. A la limite vous attendez un ou deux secondes dans votre traitement.
    Normalement la procédure stocké Java devrait être soumise aux même restrictions que le package UTL_FILE, avez vous testé ?

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par Michalak Voir le message
    Bonjour,
    J'ai une PL/SQL qui créé un fichier sous un environnement UNIX : cette PL/SQL est exécutée via un script UNIX sous l'utilisateur toto mais le fichier en sortie appartient à l'utilisateur ORACLE.
    Or, j'ai besoin de modifier ce fichier ensuite dans mon script UNIX et l'utilisateur toto n'a pas les droits.
    Y-a-t-il une possibilité via la PL/SQL de forcer le propriétaire ou les droits du fichier?

    Merci.

    Cordialement.
    Pourquoi modifier l'original en place : vous pouvez le lire et produire un nouveau fichier qui sera utilisé par l'étape suivante…

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 71
    Par défaut
    Merci pour toutes vos réponses.

    La procédure java qui exécute un chmod en runtime ne fonctionne effectivement pas : mêmes contraintes sur les droits.

    J'avais une contrainte sur le nom du fichier qui devait resté le même.
    Je m'en suis donc sorti en java en passant par un fichier temporaire puis un delete du fichier d'origine et rename du fichier temporaire et là, il n'y a pas de contraintes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WS 2008 R2] Comment changer les droits sur DFSRoots ?
    Par Clochpeck dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 03/02/2011, 13h38
  2. Réponses: 0
    Dernier message: 21/07/2010, 10h04
  3. Comment changer les droits sur une imprimante reseau
    Par matdecalf dans le forum Windows Forms
    Réponses: 1
    Dernier message: 13/06/2008, 09h43
  4. Comment changer les droits d'ecriture de fichiers
    Par jeromesteffe dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 24/10/2007, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo