Postgresql函数在没有超级用户的情况下加载csv

Postgresql函数在没有超级用户的情况下加载csv,postgresql,csv,import,superuser,Postgresql,Csv,Import,Superuser,是否存在通过复制将csv加载到postgresql表中而无需超级用户权限的方法?您可以使用 COPY tabname FROM 'filename' 需要超级用户权限或 COPY tabname FROM STDIN 它不需要超级用户权限 出于安全原因,PostgreSQL需要超级用户权限才能访问数据库服务器上的文件 一种解决方法是使用超级用户拥有的SECURITY DEFINER编写一个数据库函数,超级用户为您执行COPY。然后,对函数具有执行权限的每个人(默认情况下,每个人都可以执行该操

是否存在通过复制将csv加载到postgresql表中而无需超级用户权限的方法?

您可以使用

COPY tabname FROM 'filename'
需要超级用户权限或

COPY tabname FROM STDIN
它不需要超级用户权限

出于安全原因,PostgreSQL需要超级用户权限才能访问数据库服务器上的文件


一种解决方法是使用超级用户拥有的
SECURITY DEFINER
编写一个数据库函数,超级用户为您执行
COPY
。然后,对函数具有执行权限的每个人(默认情况下,每个人都可以执行该操作,因此进行更改)都可以执行该操作。

我成功地使其工作如下:

cat myfile.csv | psql -d mydb -c "COPY landing_tbl(field01, field02...) FROM STDIN CSV;"

\复制是我知道的psql命令,但我需要从函数复制是的,我知道。但是如何从csv加载(通过STDIN)?只有当文件位于客户端时,才能这样做。有关详细信息,我需要知道您用于访问PostgreSQL的客户端或API。我使用RazorSQL连接到远程数据库,使用应该可以做到这一点。这意味着没有超级用户权限,无法在函数中导入csv数据?