Provedli jste příkaz jako superuživatel v psql a jako jiný uživatel přes JDBC?
Příručka říká nám
:
můžete obejít toto omezení zabalením příkazu do funkce s SECURITY DEFINER
ve vlastnictví superuživatele. Buďte si vědomi bezpečnostních rizik . Můžete také chtít ODVOLAT
všechna práva od veřejnosti a pouze GRANT
vybraným uživatelům. Mohlo by to vypadat takto:
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;
Také mějte na paměti, že správnou syntaxi pro řídicí řetězce je:
E'C:\\Users\\Abhishek\\Desktop\\data1.csv'
Všimněte si E'...'
.
Od verze 9.1 je nastavení standard_conforming_strings
je ve výchozím nastavení zapnuto, vynucuje to.