You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pgAdmin4与PostgreSQL10执行COPY FROM时遇权限拒绝问题

解决PostgreSQL COPY FROM权限拒绝问题(Windows 10环境)

这个权限报错其实是PostgreSQL的COPY命令和psql的\copy命令运行机制不同导致的,我给你详细拆解并解决:

为什么会出现权限拒绝?

当你执行COPY BD.CP FROM 'C:\Users\NOMUSER\Desktop\MONDOSSIER\Fichier.csv' with delimiter ';'时,这个命令是让PostgreSQL服务器进程去读取文件。而在Windows系统中,PostgreSQL服务器默认是用名为postgres的系统用户运行的,这个用户没有访问你个人用户桌面文件夹的权限,所以就会弹出Permission denied错误。

提示里提到的psql的\copy功能,是让psql客户端程序去读取文件——客户端是用你当前登录的Windows用户身份运行的,自然能访问你的桌面文件,这也是更简单的解决方案。

解决方案1:使用psql的\copy命令(推荐)

操作步骤很简单:

  • 打开pgAdmin4,找到你要操作的数据库,右键选择「PSQL Tool」,打开psql命令行窗口
  • 在命令行里执行以下命令(路径如果包含空格,要保持引号包裹):
\copy BD.CP FROM 'C:\Users\NOMUSER\Desktop\MONDOSSIER\Fichier.csv' WITH DELIMITER ';'
  • 如果你的CSV文件第一行是表头,记得加上HEADER参数跳过表头:
\copy BD.CP FROM 'C:\Users\NOMUSER\Desktop\MONDOSSIER\Fichier.csv' WITH DELIMITER ';' HEADER

解决方案2:给PostgreSQL服务器用户授权文件夹权限(不推荐)

如果你一定要用COPY命令,可以给postgres用户开放文件所在文件夹的读取权限:

  • 找到文件夹C:\Users\NOMUSER\Desktop\MONDOSSIER,右键点击→「属性」→「安全」选项卡→「编辑」
  • 点击「添加」,在弹出的窗口中输入postgres,点击「检查名称」,确认后点击「确定」
  • 在权限列表中,给postgres用户勾选「读取」和「列出文件夹内容」的权限,点击「应用」→「确定」
  • 现在再执行原来的COPY命令就可以正常读取文件了

内容的提问来源于stack exchange,提问作者Logique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:07:55