use*_*690 3 postgresql copy permission-denied
我正在尝试将COPY文件放入PostgreSQL中的表中.表所有者是postgres,文件所有者是postgres.
该文件在/tmp.
我仍然收到错误消息:
无法打开文件"/ tmp/file"进行阅读:权限被拒绝
我不明白我做错了什么,因为我发现的所有帖子都说如果我有文件/tmp和所有者postgres那么COPY命令应该有效.
猜测:您正在使用Fedora,Red Hat Enterprise Linux,CentOS,Scientific Linux或默认情况下启用SELinux的其他发行版之一.
在您的特定操作系统/版本上,PostgreSQL的SELinux策略不允许服务器读取PostgreSQL数据目录之外的文件,或者文件是由目标策略覆盖的服务创建的,因此它有一个PostgreSQL不是的标签允许阅读.
您可以通过以root身份运行来确认这是否是问题所在:
setenforce 0
Run Code Online (Sandbox Code Playgroud)
然后重新测试.跑:
setenforce 1
Run Code Online (Sandbox Code Playgroud)
测试后重新启用SELinux.setenforce不是永久的; 无论如何,SELinux将在重启时自动重新启用.对于这样的问题,永久禁用SELinux通常不是一个好的解决方案; 如果你确认问题是SELinux,可以进一步探讨.
由于您没有指定您正在使用的操作系统或版本,PostgreSQL版本,您正在运行的确切命令,ls -al文件,\d+表格等,因此很难提供更多详细信息,或者知道这是否更多而不是猜测.尝试更新您的答案,以包括所有ls --lcontext文件和文件.
| 归档时间: |
|
| 查看次数: |
6073 次 |
| 最近记录: |