解决windows系统中postgresql用copy命令报错
来源:网络收集 点击: 时间:2024-09-26下面图中就是当时的出错信息,显示没法打开对应的文件进行写操作,错误原因是权限拒绝。但是在linux上没有这个问题,想了一下,在linux上postgresql是postgres这个用户来运行的,但是在windows上我还不熟悉是哪个用户。

连接到那台运行PostgreSQL的windows服务器上,在我要写入的E盘上点击右键,选择属性,然后选择选项卡。可以看到,里面并没有postgres这个用户。


这个时候我在桌面上的任务栏点右键,选择任务管理器,然后在任务管理器中赵找到postgresql进程,可以看到默认情况下,postgresql进程是由NETWORK SERVICE这个系统用户来运行的,难怪会没有权限。


这个时候有两个解决方案,第一个是将NETWORK SERVICE这个用户添加到权限列表里去,但是这个用户等级比较低,这样做风险比较大。不能做,那么只能暂时开放E盘给所有用户写入的权限,即修改everyone用户的权限。这样只有可以登录的用户或者网络连接用户才能写入。点击everyone用户,然后点击编辑按钮。

在everyone用户的权限页面可以看到,默认是没有写入权限的,把写入权限勾选上,然后点昆栗驾击确定,应用这些修改。


这个时候就会针对E盘里的所有文件夹开始修改权限, 如果文件比较多大的话,会需要较长的时间。等待它修改完毕。

修改完毕之后,我们再耍荡回到PostgreSQL的命令行界面,然后排舍执行刚才的copy命令来复制表里面的数据。可以看到,这次就不会出错了,能够成功复制。复制完成以后,在E盘中就能看到对应的文件了。


windows的权限和linux权限区别还是较大的,需要仔细考虑。
权限修改完毕后,记得修改回来,保证系统安全。
本人原创,转载请声明。
WINDOWSPOSTGRESQLCOPYPERMISSIONDENIED版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1217307.html