Windows环境下psql执行.sql文件时遇Permission Denied错误
解决Windows下psql导入CSV权限被拒问题
常见排查与解决方法
检查文件权限
右键supplier.csv和part.csv,选择「属性」→「安全」标签,确保当前登录Windows的用户拥有读取权限。如果是从压缩包解压的文件,属性常规标签底部可能有「解除锁定」选项,勾选后应用即可。修正文件路径写法
Windows环境下psql对路径的解析有特殊要求,可在dbLoadTPCHR.sql里将CSV路径改为双反斜杠格式:COPY supplier FROM 'C:\\Users\\kyyy\\Desktop\\ts\\supplier.csv' WITH (FORMAT csv, HEADER);或者保持正斜杠写法,确保路径无拼写错误、无多余空格。
以管理员身份运行psql
找到psql快捷方式,右键选择「以管理员身份运行」,再执行\i 'C:/Users/kyyy/Desktop/ts/dbLoadTPCHR.sql';命令,管理员权限可绕过普通用户的部分文件访问限制。转移文件到宽松权限目录
将CSV文件和sql文件一同移至C:\temp这类默认权限更开放的目录,修改sql里的对应路径后再执行导入,避开用户目录的权限管控。调整PostgreSQL服务运行账户
若上述方法无效,可能是PostgreSQL服务用系统账户运行,无法访问你的用户目录。按下Win+R输入services.msc打开服务列表,找到PostgreSQL服务,右键「属性」→「登录」标签,切换为当前Windows用户账户(需输入账户密码),重启服务后再尝试导入。
内容的提问来源于stack exchange,提问作者kayley97
相关产品推荐
相关产品推荐

