Wie können die Berechtigung zum Zugriff auf CSV-Datei mit postgres in Ubuntu
Ich bin mit dem folgenden Befehl :
copy (select so.name,
so.date_order,
sol.name,
sol.product_Id,
sol.product_uom_qty ,
ai.number,
ai.date_invoice ,
so.amount_total ,
so.amount_tax
from sale_order so ,
sale_order_line sol ,
account_invoice ai
where so.id = sol.order_id
and so.name = ai.origin
and ai.state='open')
to '/home/ekodev/Documents/test1.csv' delimiter ',' csv header;
Aber es gibt die folgende Fehlermeldung :
********** Error **********
ERROR: must be superuser to COPY to or from a file
SQL state: 42501
Hint: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.
Selbst wenn ich habe die Erlaubnis ekodev@partner:~/Documents$ sudo chmod a+rwX /home/ekodev//home/ekodev/Documents//home/ekodev/Documents/test1.csv
Es immer noch nicht für mich arbeiten.
Weiß jemand, was das problem ist?
\copy (select .. FROM table) to '/home/ekodev/Documents/test1.csv' delimiter ',' csv header;
- Es ist ein filesystem-Berechtigung Sache. Einfachste Weg, um das kopieren zu/von den
/tmp/
- Verzeichnis. - Es ist nicht.
- wo Schreibe ich diesen Befehl \copy (select .. FROM Tabelle) '/home/ekodev/Dokumente/test1.csv' delimiter ',' csv header; es auch Fehler geben . und ich habe nie verwendet psql
- über psql-Befehl Linie Dienstprogramm
- btw, Wie bist du den Zugriff auf postgres-Datenbank?
- ich bin mit remote desktop Verbindung
Du musst angemeldet sein, um einen Kommentar abzugeben.
Out-of-Dokumentation:
Das bedeutet, der Datenbank-Benutzer muss superuser-Flagge. Sie können die Flagge mit
Werden kann ruhigen gefährlich habe Sie erwägen, \Kopie von psql statt zum kopieren von Daten von der client-Seite.
alter user <username> superuser
so gut funktioniert. Beachten Sie, dass, im Gegensatz zucopy
,\copy
ist ein psql-meta-Befehl und ist nicht verfügbar, wenn Sie, sagen wir, RPostgreSQL Verbindung zu DB von R. Jedoch Ihre Lösung funktioniert aus RPostgreSQL.Diese Lösung funktionierte für mich mit
\copy
. ALTER nicht als, die auch benötigt admin-Rechte.Alternativ könnte man pgAdmin zum importieren der csv-Daten. Funktioniert, wenn die SuperUser-Rolle nicht zur Verfügung stehen, wie zum Beispiel AWS.
Der Rolle, die die Abfrage ausgeführt werden muss
SUPERUSER
zuCOPY FROM
- Datei.Ansonsten können Sie kopieren nur von
STDIN
.