【发布时间】:2018-04-12 09:01:31
【问题描述】:
是否存在通过 COPY WITHOUT SUPERUSER 权限将 csv 加载到 postgresql 表中的方法?
【问题讨论】:
-
\copy 是我所知道的 psql 命令
-
但我需要从函数中复制
标签: postgresql csv import superuser
是否存在通过 COPY WITHOUT SUPERUSER 权限将 csv 加载到 postgresql 表中的方法?
【问题讨论】:
标签: postgresql csv import superuser
我设法让它像这样工作:
cat myfile.csv | psql -d mydb -c "COPY landing_tbl(field01, field02...) FROM STDIN CSV;"
【讨论】:
你可以使用
COPY tabname FROM 'filename'
需要超级用户权限或
COPY tabname FROM STDIN
不需要超级用户权限。
出于安全原因,PostgreSQL 需要超级用户权限才能访问数据库服务器上的文件。
一种解决方法是使用为您执行COPY 的超级用户拥有的SECURITY DEFINER 编写一个数据库函数。然后每个拥有EXECUTE 权限的人(默认情况下每个人,所以更改)都可以执行操作。
【讨论】: