Permissão negada no arquivo que está tentando importar


17

Quando tento usar \ium arquivo que não está na pasta psql.exe, ele diz C:: permission denied. Por exemplo, eu tenho um arquivo com o comando SQL em C:\Users\Work\Desktop\School Work\load_database.sqle quando digito, \i "C:\Users\Work\Desktop\School Work\load_database.sql"ele diz C:: permission denied. Como posso consertar isso?

Encontrei um trabalho por aqui onde você copia o arquivo .sql para a mesma pasta em que o psql.exe está.

A propósito, \ i significa importação?

Respostas:


31

Você acabou de encontrar uma peculiaridade psqlno Windows.

No meu comentário, eu só queria excluir a possibilidade de você realmente não ter a permissão necessária. Aconteceu que, mesmo no Windows, você precisa usar barras 'normais' em vez de barras invertidas, ou seja:

\i 'C:/Users/Work/Desktop/School Work/load_database.sql'

deve funcionar bem, independentemente de qual pasta você inicia psql. Observe que eu usei aspas simples - com aspas duplas você conseguiu

"C:/Users/Work/Desktop/School Work/load_database.sql": Invalid argument

Entendi obrigado. Como você soube usar aspas simples e não duplas? Essa é uma regra geral para o postgres ou qual é a diferença?
Celeritas

1
@Celeritas Eu acho que é o resultado de um conflito de como o Windows usa aspas duplas nos caminhos e como psql(e o PostgreSQL) as usa nos identificadores.
Dez12

isso não funcionou para mim no Windows 10, barras e tudo, a resposta do user68006 fez, embora
Scaramouche

1
@Scaramouche obrigado pelo feedback! Aparentemente, nem todas as permissões negadas são criadas da mesma forma.
Dezso

6

Coloque o arquivo em algum diretório com permissão total para todos, como 'c: \ tmp'

OU

Defina os privilégios de leitura para o arquivo que você deseja importar.

Eu coloquei permissão de leitura para 'Todo mundo'.

Depois de importar o arquivo, você pode revogar essa permissão.

propriedades do arquivo windows

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.