提供postgres windows系统拷贝的权限(Windows 8)

nic*_*_eu 3 csv postgresql copy

我想使用pgadmin iii复制CSV文件.对此非常陌生.

当我从查询生成器运行"复制"命令时,我收到以下错误:

 ERROR: could not open file 'C:\\Users\\Nick\\Documents\\CDR\\csv1.csv" for reading: Permission denied SQL state: 42501
Run Code Online (Sandbox Code Playgroud)

我发现这个提到其他一些地方(在这里 在这里,并在这里例如,和一般的解决方法是"Postgres的"添加到该文件的权限(人也劝动CSV到公用文件夹,但这会导致其他问题原因).

但是当我尝试向Windows 8中具有权限的人添加postgres时,当我检查名称时,我得到"找不到对象postgres"错误.

如果我添加"Everyone"它可以工作,但由于显而易见的原因,我不想留下一个带有"Everyone"访问权限的重要文件夹.

任何人都可以建议如何在Windows 8中赋予postgres权限?

谢谢!

Dan*_*ité 9

最新版本的PostgreSQL for Windows不使用postgres操作系统帐户,NetworkService而是使用系统帐户.这在Windows中的PostgreSQL服务的属性中指定.这可能是the object postgres cannot be found错误的原因.无论如何,实际上并不需要更改文件的权限.

最新版本的pgAdmin(1.16+)能够将COPY内容从客户端提供给服务器,而无需服务器打开文件.右键单击对象浏览器中的表名,然后查看名为的菜单Import.在内部,这将使用COPY FROM STDIN变体.

如果这不令人满意,还可以选择使用psql.exe命令行工具及其\copy命令.此命令具有与SQL COPY命令相同的功能和语法,除了它将文件从客户端流式传输到服务器而不是让服务器自己打开它.如果您是面向CLI的,那么将它作为您的首选,它比pgAdmin更容易.