PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

डेटाबेस पोस्टग्रेज करने के लिए JDBC का उपयोग करके एक csv फ़ाइल को पढ़ने का प्रयास करने की अनुमति से इनकार किया गया

क्या आपने कथन को सुपरयूज़र . के रूप में निष्पादित किया था psql में और JDBC के माध्यम से एक अन्य उपयोगकर्ता के रूप में?
मैनुअल हमें बताता है :

आप कर सकते हैं SECURITY DEFINER एक सुपरयुसर के स्वामित्व में। सुरक्षा जोखिमों . आप REVOKE भी करना चाह सकते हैं। जनता से सभी अधिकार और केवल GRANT चयनित उपयोगकर्ताओं के लिए। इस तरह दिख सकता है:

CREATE OR REPLACE FUNCTION foo()
  RETURNS void AS
$BODY$
    COPY data_1
    FROM E'C:\\Users\\Abhishek\\Desktop\\data1.csv'
    USING delimiters ',';
$BODY$
  LANGUAGE sql VOLATILE SECURITY DEFINER
  SET search_path = public, pg_temp;  -- or whatever schema the table is in

REVOKE ALL ON FUNCTION foo() FROM public;
GRANT SELECT ON FUNCTION foo() TO my_user;

साथ ही, ध्यान रखें कि एस्केप स्ट्रिंग्स के लिए उचित सिंटैक्स है:

E'C:\\Users\\Abhishek\\Desktop\\data1.csv'

नोट करें E'...' .
संस्करण 9.1 के अनुसार, सेटिंग standard_conforming_strings डिफ़ॉल्ट रूप से चालू है, इसे लागू कर रहा है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जीरो डाउनटाइम के साथ PostgreSQL10 को PostgreSQL11 में अपग्रेड कैसे करें

  2. सी #, एंटिटी फ्रेमवर्क कोर और पोस्टग्रेएसक्यूएल:एक पंक्ति डालने में 20+ सेकंड लगते हैं

  3. PostgreSQL की छिपी विशेषताएं

  4. SQLAlchemy बहुत बड़े सेटों के लिए सदस्यता सेट करता है

  5. Postgresql 9.4 . में रिक्त स्थान के साथ गलत क्रम/संयोजन/क्रम