Đơn giản hóa quy trình xác thực PostGIS từ QGIS


9

Trong QGIS tôi có một dự án với dữ liệu từ nhiều cơ sở dữ liệu PostGIS khác nhau (~ 15), không có thông tin đăng nhập (người dùng xác thực / pwd) được lưu trữ cho mỗi kết nối như dưới đây.

nhập mô tả hình ảnh ở đây

Bây giờ khi một người dùng khác mở dự án, anh ta (hoặc cô ta) phải nhập thông tin đăng nhập cho cơ sở dữ liệu EACH được sử dụng:

nhập mô tả hình ảnh ở đây

Tôi cực kỳ sợ rằng không ai trong số những người dùng của tôi sẽ chấp nhận nhập thông tin đăng nhập của anh ấy (hoặc cô ấy) 15 lần (nhưng trong môi trường doanh nghiệp có 100 người dùng tiềm năng, sự chấp nhận là chìa khóa thành công).

Vì vậy, hai câu hỏi đặt ra cho tôi:

  • Có cách nào để đề xuất Tên người dùng theo biến dự án toàn cầu user_account_name
  • Có cách nào để bảo QGIS sử dụng thông tin đăng nhập cho kết nối db đầu tiên cho bất kỳ kết nối nào khác không?

Tôi không thể ước tính nếu nó sẽ là một thỏa thuận tuyệt vời để sửa đổi cuộc đối thoại 'Nhập thông tin xác thực' như đề xuất dưới đây, nhưng điều này có thể không?

nhập mô tả hình ảnh ở đây


Vì vậy, chỉ có "Vương quốc" đang thay đổi trong khi tất cả các biến khác giữ nguyên?
CườiU

có, trong thực tế chỉ có 'dbname' đang thay đổi. tất cả trên cùng một máy chủ.
Jochen Schwarze

5
PostGIS là phần mở rộng không gian. Bạn có hơn một chục cơ sở dữ liệu PostgreSQL . Mặc dù bạn có thể kết hợp một loại bùn với nhau, bạn thực sự phải có một cơ sở dữ liệu lớn. Kết nối với hơn ba chỉ là thiết kế ứng dụng / cơ sở dữ liệu kém.
Vince

3
Rất gan dạ ... Xin lỗi vì tiếng Anh của tôi không đủ tốt để làm rõ rằng câu hỏi của tôi không phải là về thiết kế ứng dụng / cơ sở dữ liệu. Và nhân tiện, tôi luôn nghĩ rằng PostGIS ngụ ý PostgreSQL và trong QGIS chúng tôi thiết lập các kết nối PostGIS (ảnh chụp màn hình cp ở trên). Mặc dù một số người sau đó nói rằng nên phân phối nội dung khác nhau trong các cơ sở dữ liệu khác nhau nếu có thể, xin vui lòng cho tôi tham gia từ nơi bạn biết rằng kết nối với hơn ba cơ sở dữ liệu là thiết kế ứng dụng kém? Xin vui lòng, xin vui lòng cung cấp các tài liệu tham khảo tài liệu liên quan! Và tại sao ba?!
Jochen Schwarze

1
Tôi không thể chỉ cho bạn tài liệu, nhưng một giải pháp tốt có thể là sử dụng các lược đồ riêng biệt trong cùng một cơ sở dữ liệu.
bugmenot123

Câu trả lời:


7

QGIS có Hệ thống xác thực tích hợp . Nói một cách đơn giản, bạn có một cơ sở dữ liệu được bảo vệ với tất cả thông tin đăng nhập của bạn, được lưu trữ trong một qgis-auth.dbtệp mà bạn có thể gửi cho người khác, người biết mật khẩu chính:

 thư mục .qgis

Khi bạn tạo một số kết nối PostGIS mới, thay vì nhập thông tin đăng nhập / mật khẩu, bạn có thể chọn từ đó qgis-auth.db(mỗi cặp đăng nhập / mật khẩu có một tên thân thiện với người dùng).

Thiết lập kết nối PostGIS trong QGIS với Hệ thống xác thực

Ví dụ, tôi có một dự án QGIS chứa nhiều lớp. Mỗi lớp là một kết nối đến cơ sở dữ liệu PostGIS từ xa. Mỗi cơ sở dữ liệu có người dùng riêng. Khi tôi mở dự án này, tôi phải in mật khẩu chính một lần và tất cả các lớp (kết nối db) bắt đầu hoạt động.

Tôi có thể gửi dự án này cho đồng nghiệp của tôi, cung cấp qgis-auth.dbtệp của tôi . Trước đó tôi có thể xóa một số thông tin mà tôi không muốn chia sẻ từ tệp này.

Sau khi đồng nghiệp của tôi đưa qgis-auth.dbvào .qgisthư mục của anh ấy (anh ấy có thể tạo bản sao lưu tệp của chính mình trước đó), anh ấy mở dự án, nhập mật khẩu chính và mọi thứ đều hoạt động.

Bạn nhập mật khẩu chính một lần mỗi phiên.

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.