1
votes

J'essaye de copier un fichier, mais j'obtiens un message d'erreur

Je suis nouveau sur postgres, il manque probablement quelque chose de stupide comme (le nom correct de mon répertoire). Quelqu'un peut-il me guider?

Je suis les instructions du livre, Practical SQL par Anthony DeBarros

Code:

copiez us_counties_2010 à partir de 'C: \ Users \ obella \ OneDrive \ Desktop \ us_counties_2010.csv' avec (FORMAT CSV, HEADER);

Erreur:

ERREUR: impossible d'ouvrir le fichier "C: \ Users \ obella \ OneDrive \ Desktop \ us_counties_2010.csv" pour lire: Autorisation refusée ASTUCE: COPY FROM indique au serveur PostgreSQL processus pour lire un fichier. Vous voudrez peut-être une installation côté client telle que \ copie de psql. État SQL: 42501

copiez us_counties_2010 à partir de 'C: \ Users \ obella \ OneDrive \ Desktop \ us_counties_2010.csv' avec (FORMAT CSV, HEADER);

Attendu:

La requête a bien été renvoyée: 3143 lignes concernées

Réel:

ERREUR: impossible d'ouvrir le fichier "C: \ Users \ obella \ OneDrive \ Desktop \ us_counties_2010.csv" pour lire: Autorisation refusée ASTUCE: COPY FROM indique au serveur PostgreSQL processus pour lire un fichier. Vous voudrez peut-être une installation côté client telle que \ copie de psql. État SQL: 42501


2 commentaires

copier table_name (colonne1, ...) depuis 'C: \ Users \ obella \ OneDrive \ Desktop \ us_counties_2010.csv' delimiter ',' csv header; est-ce ce que vous voulez?


De l'erreur je pense que vous exécutez ceci pas dans psql?


3 Réponses :


5
votes

Comme le message vous l'indique, Postres n'est pas autorisé à lire le fichier.

Si vous souhaitez résoudre ce problème, ouvrez le Gestionnaire des tâches et cliquez sur "Afficher les processus de tous les utilisateurs". Recherchez les lignes avec le nom d'image postgres.exe (probablement plusieurs). Souvenez-vous de la valeur dans la colonne "Nom d'utilisateur" (il s'agit probablement de SERVICE RÉSEAU ). Ouvrez les propriétés de votre fichier, ajoutez cet utilisateur dans l'onglet "Sécurité" et accordez-leur un accès en lecture.

Ou utilisez le \ copy de psql comme le suggère le message.


0 commentaires

0
votes

Modifiez l'emplacement du fichier de données et le chemin d'accès au lecteur [ 'D: \ us_counties_2010.csv' ], cela fonctionnera.

L'autorisation est refusée car vos fichiers [us_counties_2010.csv] se trouvent dans le lecteur 'C' ['C: \ Users \ obella \ OneDrive \ Desktop \ us_counties_2010.csv'] qui est un lecteur Windows et les autorisations sont restreintes et peuvent pas être changé facilement et impossible sans privilèges administratifs.

Bonne chance et bonne programmation!


0 commentaires

0
votes

Il ne reste plus qu'à: Accédez aux Propriétés de ce fichier particulier en cliquant dessus avec le bouton droit de la souris. Ensuite, allez dans l'onglet Sécurité de la boîte de dialogue Propriétés affichée. Cliquez sur l'option Modifier . La boîte de dialogue Permissions apparaît, puis cliquez sur le bouton Ajouter . Tapez " Tout le monde " (sans apostrophes) dans la zone de description "Entrez les noms des objets à sélectionner" et cliquez sur le bouton OK . Ensuite, assurez-vous que toutes les cases à cocher "Permissions pour tout le monde" sont cochées simplement en cochant la case "Contrôle total" pour autoriser l'accès au contrôle sans aucune restriction. Ensuite, Appliquer et OK tous les onglets pour appliquer toutes les modifications effectuées.

Vous pouvez maintenant exécuter / exécuter la requête sans aucune erreur.


0 commentaires