我正在使用PGAdmin 1.14.3。
当我尝试执行导入命令时:
COPY grad(country_code, postal_code, place_name, admin_name1, admin_code1, admin_name2, admin_code2, admin_name3, admin_code3, latitude, longitude, accuracy) FROM 'C:\\Users\\denis\\Desktop\\BP2Project\\USA\\US.txt';
我得到了
错误:无法打开文件“C:\ Users \ denis \ Desktop \ BP2Project \ USA \ US.txt”用于阅读:权限被拒绝的SQL状态:42501
我查了其他类似的问题,没有一个解决了我的问题。
我以超级用户“postgres”身份login。 我不明白为什么我缺less权限。 我在Windows 7上。
用户Postgres
必须具有您要复制的文件的读权限。
看看这篇文章 ,看看如何在Windows上修改文件的安全访问。
Houari和Flimzy在回答中提到的权限文章是一个很好的参考资料,但直接的答案(我使用的快速解决方案)是:
Everyone
进入“输入对象名称以选择”文本区域框。 现在您可以运行需要访问这些文件的SQL COPY语句。
Everyone
项。 现在权限已经返回到原来的状态。
好的,这是如何得到COPY命令工作,一步一步地将表格导出到CSV。 请注意,我正在使用pgAdmin 111。
右键单击包含权限被拒绝的数据文件的文件夹>,然后单击“属性”。
在“文件夹的属性”窗口中,选择“安全”选项卡。 点击编辑按钮。
在打开的“文件夹的权限”窗口中,单击添加…按钮。 输入Everyone进入“输入对象名称以选择”文本区域框。
点击确定,窗口将关闭。 验证默认的读取和执行权限是否设置为允许通过>复选框在上一个窗口中。 点击确定,窗口将关闭。
单击“文件夹属性”窗口中的“应用”按钮。
这是一个棘手的部分,在myExports文件夹内创建一个空白的CSV文件与您想要的名称.Eg employee.csv
然后像这样运行复制命令:
将员工复制到'C:\ myExports \ employee.csv'分隔符','csv;
员工是这个例子中的表名。
希望这可以帮助。
如果您不想为每个人授予权限,则可以向启动该服务的帐户添加权限。 在控制面板 – 管理工具 – 服务中,在“登录”选项卡中复制帐户名称。 (在我的系统上,这个帐号被称为“网络服务”。)然后如上面的答案所示,与该用户共享带有CSV文件的文件夹。
在不同的线程上对这个问题的回应是这样的1.“告诉我你使用的是什么命令”2.“确保你有正确的权限”3.“只要使用/ copy”
我只是试图给每个人的权限,我试图复制的CVS文件,它仍然给我的权限被拒绝的错误。 我认为这个功能已经被破坏了,并且已经在多个连续版本的Windows上被连续发布了多个版本。
对我而言,我已经花了很长时间在这方面了。 我有一个中央数据库驻留在运行14.04 postgresql-9.5 pgAdmin3 postgis-2.2的HP盒子上,通过tweeked Samba共享进行分享。 我的客户正在使用Windows 10.1,7,8.1的混合,我有一个Ubuntu 14.04桌面。
我正在处理大型表更新记录和规范化数据,并建立了从核心COPY public.table_1 TO(我在Samba中设置的共享文件夹https:// http://www.youtube.com/watch?v=ndAYZ0DJ-U4)'/srv/samba/share/%5Bfilename%5D.csv '
然后,我可以更新数据库,一旦表格被修改COPY table_1从'/srv/samba/share/test.csv'使用DELIMITERS','NULL作为'''CSV头部; 从我的任何客户。
我所能确定的关键是,进行更新的客户端必须是超级用户,因为在这里有4个服务器在这里一起工作Postgresql,Samba,UNIX和WINS所有用户在同一用户名和密码同一性的每台服务器上注册是主要因素。
我尝试了很长一段时间,并尝试各种命名约定,但最终它是http://www.postgresql.org/message-id/CFF47E56EA077241B1FFF390344B5FC10ACB1C0C@webmail.begavalley.nsw.gov.au我整理出来这就像是一个大开关点击你的股票和集体管理chown 777是一个重要的学习曲线,但是,我花在这个小时将收获奖励下线…爱Ubuntu的爱生活和爱的精神开放源代码,但这可能是睡眠剥夺踢… IT作品