是否存在通过 COPY WITHOUT SUPERUSER权限将 csv 加载到 postgresql 表中的任何方法?
问问题
4069 次
2 回答
6
我设法使它像这样工作:
cat myfile.csv | psql -d mydb -c "COPY landing_tbl(field01, field02...) FROM STDIN CSV;"
于 2018-05-20T10:34:04.740 回答
5
您可以使用
COPY tabname FROM 'filename'
这需要超级用户权限或
COPY tabname FROM STDIN
这不需要超级用户权限。
出于安全原因,PostgreSQL 需要超级用户权限才能访问数据库服务器上的文件。
一种解决方法是编写一个由为您SECURITY DEFINER
执行此操作的超级用户拥有的数据库函数COPY
。然后每个拥有EXECUTE
该功能权限的人(默认情况下每个人,所以更改它)都可以执行该操作。
于 2017-10-31T08:56:15.877 回答