2012-12-29 10 views
22

से CSV फ़ाइल आयात करने का प्रयास करते समय अनुमति अस्वीकार कर दी गई है I PGAdmin 1.14.3 का उपयोग कर रहा हूं।PGAdmin

जब मैं एक आयात आदेश पर अमल करने का प्रयास करें:

COPY grad(country_code, postal_code, place_name, admin_name1, admin_code1, admin_name2, admin_code2, admin_name3, admin_code3, latitude, longitude, accuracy) 
FROM 'C:\\Users\\denis\\Desktop\\BP2Project\\USA\\US.txt'; 

मैं एक

ERROR: could not open file "C:\Users\denis\Desktop\BP2Project\USA\US.txt" for reading: Permission denied SQL state: 42501

मैं अन्य similar सवालों को देखने के लिए किया था और उनमें से कोई मेरी समस्या हल हो जाती।

मैंने उपयोगकर्ता "पोस्टग्रेस" के रूप में लॉग इन किया जो सुपरसियर है। मुझे नहीं लगता कि मुझे अनुमति क्यों गुम है। मैं विंडोज 7 पर हूं।

उत्तर

7

उपयोगकर्ता Postgres उस फ़ाइल पर पढ़ने की पहुंच होनी चाहिए जिसमें से आप कॉपी करने वाले हैं।

विंडोज पर फ़ाइलों की सुरक्षा पहुंच को संशोधित करने के तरीके को देखने के लिए this article पर देखें। अलग धागे पर इस समस्या का

+0

मैं पोस्टग्रेज़ पर अनुमति कैसे सेट करूं? – Tool

+2

@ टूल: * सिस्टम उपयोगकर्ता * "पोस्टग्रेस" को फ़ाइल सिस्टम में अधिकारों की आवश्यकता है। * डेटाबेस उपयोगकर्ता * "postgres" के साथ भ्रमित नहीं है। और हम * सर्वर * के लिए स्थानीय फाइल के बारे में बात कर रहे हैं, है ना? यदि नहीं, तो आप इस तरह से SQL 'COPY' का उपयोग नहीं कर सकते हैं। इस मामले में [psql मेटा-कमांड '\ copy'] (http://www.postgresql.org/docs/current/interactive/app-psql.html) की तलाश करें। –

+0

मैं साइगविन से psql का उपयोग कर रहा हूँ। कोई Postgres या postgres उपयोगकर्ता मेरे Windows बॉक्स ... – Cromax

0

जवाब इस 1. तरह कुछ "मुझे बताओ कि वास्तव में क्या आदेश आप का इस्तेमाल किया" 2. 3. "बस का उपयोग/कॉपी"

"सुनिश्चित करें कि आप सही अनुमतियाँ करें" जाना

मैंने बस सीवीएस फ़ाइल पर सभी को अनुमति देने का प्रयास किया है, मैं प्रतिलिपि बनाने की कोशिश कर रहा हूं, और यह अभी भी मुझे अनुमति दे रही है। मुझे लगता है कि यह कार्यक्षमता टूट गई है और विंडोज के कई लगातार संस्करणों पर लगातार कई रिलीज के लिए टूटा गया है।

+0

दूसरे से देखने पर पर पाया जाता है, 'Evereyone' के लिए उपयोगकर्ता अनुमतियों की स्थापना कुछ प्रभाव हो रहा है। – Alex

40

permissions articleHouari और Flimzy द्वारा answer में उल्लेख किया है एक अच्छा संदर्भ सामग्री है, लेकिन एक सीधा जवाब (त्वरित सुधार मैं प्रयोग किया जाता) है:

  • सही डेटा फ़ाइल वाले फ़ोल्डर क्लिक करें (रों) उस अनुमति को अस्वीकार कर दिया गया था और फिर गुण पर क्लिक करें।
  • फ़ोल्डर की गुण विंडो में, सुरक्षा टैब का चयन करें।
  • पर क्लिक करें बटन संपादित करें।
  • खोले गए "फ़ोल्डर के लिए अनुमतियाँ" विंडो में, पर क्लिक करें ... बटन।
  • Everyone टाइप करें "टेक्स्ट क्षेत्र बॉक्स का चयन करने के लिए ऑब्जेक्ट नाम दर्ज करें" में टाइप करें।
  • ठीक पर क्लिक करें और विंडो बंद हो जाएगी।
  • सत्यापित करें कि डिफ़ॉल्ट पढ़ें & निष्पादित अनुमतियाँ पर सेट होने पर पिछली विंडो में जाँच चेकबॉक्स के माध्यम से की अनुमति दें।
  • ठीक पर क्लिक करें और विंडो बंद हो जाएगी।
  • पर क्लिक करें फ़ोल्डर गुण विंडो में बटन लागू करें।

अब आप उन SQL फ़ाइलों को एक्सेस करने के लिए SQL COPY कथन चला सकते हैं जिन्हें उन फ़ाइलों तक पहुंचने की आवश्यकता है।

  • एक बार हो जाने पर, फ़ोल्डर की प्रॉपर्टी विंडो पर वापस आएं।
  • पर क्लिक करें बटन संपादित करें।
  • "समूह या उपयोगकर्ता नाम:" फ़ील्ड में Everyone प्रविष्टि का चयन करें।
  • पर क्लिक करें बटन हटाएं।
  • शेष खुली खिड़कियों पर ठीक पर क्लिक करें।

अब अनुमतियां वापस लौटा दी गई हैं।

+0

** नोट: ** मैंने विंडोज 2008 आर 2 के लिए इन चरणों का पालन किया। – Kevin

+1

यह स्वीकार्य उत्तर होना चाहिए, और यदि आप पीजी से डेटा कॉपी कर रहे हैं तो "लिखें" बॉक्स को देखना न भूलें। – JLB

2

यदि आप सभी को अनुमति नहीं देना चाहते हैं, तो आप सेवा शुरू करने वाले खाते में अनुमतियां जोड़ सकते हैं। नियंत्रण कक्ष में - व्यवस्थापकीय उपकरण - सेवाएं, 'लॉग ऑन' टैब में खाता नाम कॉपी करें। (मेरे सिस्टम पर खाते को 'नेटवर्क सेवा' कहा जाता है।) फिर ऊपर दिए गए उत्तर में दिखाए गए अनुसार इस उपयोगकर्ता के साथ फ़ोल्डर को CSV-file के साथ साझा करें।

5

ठीक है, सीएसवी को एक टेबल निर्यात करने के लिए सीओपीवाई कमांड कैसे काम कर रहा है, चरण-दर-चरण। Pls ध्यान दें कि मैं pgAdmin 111 का उपयोग कर रहा हूं।

  1. वह लक्ष्य फ़ोल्डर बनाएं जिसे आप तालिका निर्यात करना चाहते हैं। उदाहरण के लिए C: \ myExports
  2. सेट इस फ़ोल्डर पर पढ़ने/लिखने की अनुमति निम्न चरणों का पालन:

Right click the folder containing the data file(s) that permission was denied >to and then click Properties.

In the Folder's Properties window, select the Security tab. Click the Edit button.

In the "Permissions for the folder" window that opened, click the Add... button. Type Everyone into the "Enter the object names to select" text area box.

Click OK and the window will close. Verify that the default Read & Execute permissions were set to Allow via the >check checkbox in the previous window. Click OK and the window will close.

Click the Apply button in the Folder Properties window.

  1. यह मुश्किल हिस्सा है, अंदर myExports फ़ोल्डर अपने वांछित name.Eg के साथ एक खाली CSV फ़ाइल बनाने के

  2. employee.csv फिर इस तरह की प्रतिलिपि कमांड चलाएँ:

    copy employee to 'C:\myExports\employee.csv' delimiter ',' csv;

कर्मचारी इस उदाहरण में तालिका का नाम है ..

आशा है कि इससे मदद मिलती है।

+0

** नोट ** ** मेरे लिए अनुमतियों को बदलने पर, मुझे काम करने के लिए सभी बक्से ("पूर्ण नियंत्रण", "संशोधित करें" ...) देखना था !!! – DrMisha

0

मेरे लिए और मैंने अभी इस पर कुछ घंटे बिताए हैं। मेरे पास एक एचपी बॉक्स पर रहने वाला एक केंद्रीय डीबी है जो 14.04 पोस्टग्रेस्क्ल-9.5 पीजीएडमिन 3 पोस्टगिस-2.2 चल रहा है, शेयर एक ट्वीड सांबा शेयर के माध्यम से किए जाते हैं। मेरे ग्राहक विंडोज 10.1, 7, 8.1 के मिश्रण का उपयोग कर रहे हैं और मेरे पास एक ubuntu 14.04 डेस्कटॉप है।

मैं रिकॉर्ड को अद्यतन करने और डेटा को सामान्य करने के लिए बड़ी तालिकाओं के साथ काम कर रहा हूं और सीएसवी फाइलों से एसक्यूएल कॉपी स्टेटमेंट्स के आसपास दिनचर्या तैयार की है जो मूल COPY public.table_1 से बने थे (शेयर फ़ोल्डर जो मैं सांबा में स्थापित करता था https://www.youtube.com/watch?v=ndAYZ0DJ-U4) '/srv/samba/share/[filename].csv'

मैं तब डेटाबेस को अद्यतन कर सकता हूं जब टेबल//rr/samba/share/test.csv 'से लेकर तालिकाओं को संशोधित किया जा सकता है। ',' नल एएस '' सीएसवी हेडर के साथ; मेरे किसी भी ग्राहक से।

जहां तक ​​मैं यह निर्धारित करने में सक्षम हूं कि कुंजी अद्यतन करने वाले क्लाइंट सुपरसर्स होना चाहिए, यहां तक ​​कि सबकुछ उपयोगकर्ताओं के संदर्भ में होना चाहिए क्योंकि यहां पोस्टर्स 4, एक साथ काम कर रहे 4 सर्वर पोस्टग्रेस्क्ल, सांबा, यूनिक्स और विन्स मेरे सभी उपयोगकर्ता एक ही उपयोगकर्ता नाम और पासवर्ड समरूपता वाले प्रत्येक सर्वर पर पंजीकृत हैं मुख्य कारक है।

मैंने कई नामकरण सम्मेलनों के बारे में लंबे समय तक चलने की कोशिश की थी और अंत में यह http://www.postgresql.org/message-id/[email protected]gov.au था जो मुझे हल करता था, यह एक बड़े स्विच की तरह था। आपके शेयरों पर 777 दिखाए गए और समूह प्रबंधन एक महत्वपूर्ण था वक्र सीखने लेकिन।, घंटे मैं इस पर खर्च किया है लाइन नीचे पुरस्कार काटेंगे ... प्यार उबंटू जीवन प्यार और खुला स्रोत की भावना प्यार लेकिन यह है कि सिर्फ नींद में लात अभाव हो सकता है ... यह काम करता है

संबंधित मुद्दे