Postgres COPY ... FROM PROGRAM失败。权限很好

我只是尝试使用PHP脚本导入一些数据。从postgres帐户,我可以运行脚本。从以postgres登录的psql中,我可以运行脚本。

这是在Ubuntu 14.04上运行的PostgreSQL 9.6。

-- works
\COPY mcl_import.mcl_user_mapping_tmp (mcl_id,user_id) FROM program '/usr/bin/php -f /var/yadda/yadda/user-import.php' WITH (FORMAT CSV,DELIMITER ',',NULL '[NULL]',header FALSE )

-- fails
COPY mcl_import.mcl_user_mapping_tmp (mcl_id,header FALSE );
-- ERROR:  program "/usr/bin/php -f /var/yadda/yadda/user-import.php" failed
-- DetaIL:  child process exited with exit code 255

为此测试了访问限制,并且效果很好。

COPY testing FROM program 'more /var/yadda/yadda/user-import.php' WITH (DELIMITER E'\f');

通过输出此版本信息来测试PHP,它可以正常工作。

COPY testing FROM program 'php -v' WITH (DELIMITER E'\f');

确保它与postgres一起运行。

COPY testing FROM program 'whoami' WITH (DELIMITER E'\f');

总结:

  • \ COPY有效
  • COPY不
  • 它以用户postgres的身份运行
  • 用户postgres有权访问文件
  • 用户postgres有权访问并可以运行php命令

我将独立运行此脚本,但这是更大的迁移过程的一部分。

chifengbin 回答:Postgres COPY ... FROM PROGRAM失败。权限很好

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3092267.html

大家都在问