Quyền bị từ chối trong tập tin cố gắng nhập


16

Khi tôi cố gắng sử dụng \itrên một tệp không có trong thư mục psql.exe, nó nói C:: permission denied. Ví dụ: tôi có một tệp có lệnh SQL tại C:\Users\Work\Desktop\School Work\load_database.sqlvà khi tôi gõ \i "C:\Users\Work\Desktop\School Work\load_database.sql"nó nói C:: permission denied. Làm thế nào tôi có thể sửa lỗi này?

Tôi đã tìm thấy một công việc xung quanh đây , nơi bạn sao chép tệp .sql vào cùng thư mục với psql.exe.

Nhân tiện, \ i có nghĩa là nhập khẩu không?

Câu trả lời:


30

Bạn vừa gặp phải một đặc thù của psqlWindows.

Trong bình luận của tôi, tôi chỉ muốn loại trừ khả năng bạn thực sự không có sự cho phép cần thiết. Sau đó, hóa ra là ngay cả trên Windows, bạn phải sử dụng dấu gạch chéo 'bình thường' thay vì dấu gạch chéo ngược, đó là:

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

sẽ hoạt động tốt cho dù bạn bắt đầu psqltừ thư mục nào . Lưu ý rằng tôi đã sử dụng dấu ngoặc đơn - với dấu ngoặc kép bạn nhận được

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

Cảm ơn Làm thế nào bạn biết để sử dụng dấu ngoặc đơn và không gấp đôi? Đó có phải là một quy tắc chung cho postgres hay sự khác biệt?
Celeritas

1
@Celeritas Tôi nghĩ rằng đó là kết quả của một cuộc xung đột về cách Windows sử dụng dấu ngoặc kép trong các đường dẫn và cách psql(và PostgreQuery) sử dụng nó trong các định danh.
dezso

điều này đã không làm việc cho tôi trong windows10, chuyển tiếp dấu gạch chéo và tất cả, câu trả lời của user68006 đã làm
Scaramouche

1
@Scaramouche cảm ơn bạn đã phản hồi! Rõ ràng, không phải tất cả các quyền bị từ chối đều được tạo ra như nhau.
Dezső

6

Đặt tệp trong một số thư mục với sự cho phép đầy đủ cho mọi người, như 'c: \ tmp'

HOẶC LÀ

Đặt đặc quyền đọc cho tệp bạn muốn nhập.

Tôi cho phép đọc 'Mọi người'.

Sau khi nhập tệp, bạn có thể thu hồi quyền đó.

thuộc tính tập tin windows

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.