PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

python kết nối với postgresql bằng libpq-pgpass

Bạn không nhập nó vào Python của mình chương trình. Điểm của .pgpass đó là tệp thông thường tuân theo quyền đối với tệp của hệ thống và libpq trình điều khiển thư viện nào chẳng hạn như psycopg2 sử dụng để kết nối với Postgres sẽ xem tệp này để tìm mật khẩu thay vì yêu cầu mật khẩu phải có trong mã nguồn hoặc nhắc nhở về nó.

Ngoài ra, đây không phải là tệp phía máy chủ mà là tệp phía máy khách. Vì vậy, trên hộp * nix, bạn sẽ có ~/.pgpass tệp chứa thông tin đăng nhập cho các kết nối khác nhau mà bạn muốn có thể thực hiện.

Chỉnh sửa để trả lời nhận xét từ OP:

Hai điều chính cần xảy ra để psycopg2 để xác thực chính xác qua .pgpass :

  1. Không không chỉ định mật khẩu trong chuỗi được chuyển tới psycopg2.connect
  2. Đảm bảo rằng mục nhập chính xác được thêm vào .pgpass tệp cho người dùng sẽ kết nối qua psycopg2 .

Ví dụ:để làm cho điều này hoạt động cho tất cả cơ sở dữ liệu cho một người dùng cụ thể trên localhost cổng 5432 , bạn sẽ thêm dòng sau vào .pgpass của người dùng đó tệp:

localhost:5432:*:<username>:<password>

Và sau đó connect cuộc gọi sẽ có dạng sau:

conn = psycopg2.connect("host=localhost dbname=<dbname> user=<username>")

libpq cơ bản trình điều khiển psycopg2 các lần sử dụng sau đó sẽ sử dụng .pgpass tệp để lấy mật khẩu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách bỏ nhiều bảng trong PostgreSQL bằng ký tự đại diện

  2. PostgreSQL CHẨN ĐOÁN BẬT với các ĐẶT HÀNG KHÁC BỞI

  3. Tên bảng JPA viết hoa

  4. Tạo bảng Postgresql từ Sơ đồ Avro trong Nifi

  5. Làm cách nào để nhập các bảng có giá trị bị thiếu?