Quyền bị từ chối để tạo ra pg_catalog.tablename 'trong khi pg_dump nhắm mục tiêu vào một máy khác


11

Tôi đang cố gắng kết xuất một số bảng từ máy chủ 9.5 beta 2 sang máy chủ 9.4.4. Hình thức của lệnh tôi đang sử dụng là khá chuẩn:

pg_dump -t table dbname | psql -h hostname -d dbname

Tôi đang sử dụng người dùng Postgres, điều mà tôi nhận ra có lẽ không lý tưởng, nhưng đây là cả hai hộp xử lý dữ liệu dev mà chỉ tôi sử dụng và nó có liên quan đến lỗi xảy ra. Ban đầu, tôi gặp lỗi

LRI: tham số cấu hình không được nhận dạng "row_security"

Dự kiến ​​tính năng này là mới trong phiên bản 9.5 và, vâng, tôi nhận ra rằng không nên sử dụng pg_dump giữa các phiên bản Postgres khác nhau, nhưng, thật không thể tránh khỏi, vì tôi đã gặp phải một lỗi rất khó hiểu và cần phải di chuyển một lỗi lớn lượng dữ liệu tĩnh một lần.

Vì vậy, sử dụng hack đáng ghét này để loại bỏ lỗi row_security và bật dừng ở lỗi đầu tiên:

pg_dump -t tablemame dbname |sed 's/SET row_security = off;//'|
psql -v ON_ERROR_STOP=1 -h hostname -d dbname

Bây giờ tôi nhận được:

LRI: quyền bị từ chối để tạo "pg_catalog.tablename" CHI TIẾT: Sửa đổi danh mục hệ thống hiện không được phép

Mặc dù có thể không mong muốn sử dụng người dùng / vai trò của Postgres, nhưng tôi hiểu rằng không nên có vấn đề về sự cho phép của bản chất này. Tôi sẵn sàng cho bất kỳ đề xuất nào lưu ý rằng đây là một hoạt động tắt và đây là các hộp dev xử lý dữ liệu không được kết nối với bất kỳ dịch vụ trực tiếp nào, vì vậy ưu tiên ưu tiên hơn các chính sách truy cập dữ liệu lý tưởng của công ty. Đã nói rằng, sẽ tốt hơn nếu hiểu làm thế nào để làm điều này đúng và tránh điều này trong tương lai.

Câu trả lời:


13

Điều này hóa ra là do một thông báo lỗi hơi khó hiểu xảy ra khi lược đồ bạn đang kết xuất với pg_dump không tồn tại trên cơ sở dữ liệu / máy đích. Tôi sẽ để lại câu hỏi này, với hy vọng nó có thể giúp đỡ người khác.


Xảy ra với tôi quá, may mắn tôi tìm thấy điều này. Chỉ cần tạo thủ công lược đồ 'công khai' và nó hoạt động.
Robert Mikes

@RobertMike. Vui mừng được giúp đỡ. Đó là một lỗi hơi mơ hồ.
John Powell

Cảm ơn bạn - may mắn là tôi đã tìm thấy điều này trước khi tham gia vào nó!
James Fry

+1. Vấn đề này chỉ làm tôi vấp ngã quá!
Jay Cummins
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.