Để ứng dụng có thể kết nối đến database PostgreSQL, ta cũng cần có các thông tin kết nối tương tự như các database khác, bao gồm host, port, database name, username, password.

Port kết nối mặc định của PostgreSQL là 5432, đã được đăng ký với IANA (trong khi port 1521 của Oracle không đăng ký chính thức với tổ chức này).

 

Kiểm tra thử trên server Linux

 

 

Cấu hình chấp nhận kết nối từ xa

 

Trong file postgresql.conf

 

 

Điều này có nghĩa là PostgreSQL sẽ lắng nghe kết nối từ tất cả các card mạng (NIC) (tất cả các ip address) của server.

 

Trong file pg_hba.conf

 

 

  • Type = host -> remote connection
  • Database = all -> cho phép kết nối đến tất cả các database trên server
  • User = all -> cho phép tất cả các user có thể kết nối
  • Adress = 0.0.0.0/0 -> cho phép kết nối từ mọi IP client
  • Method = md5 -> xác thực bằng password mã hóa. Ngoài ra còn có thể xác thực bằng GSSAPI, SSPI, LDAP, RADIUS, PAM, SSL. Dùng “trust” -> không xác thực

Để kết nối vào database PostgreSQL, ta sẽ dùng công cụ pgAdmin 3 (http://www.pgadmin.org/), là 1 công cụ quản trị database PostgreSQL và cũng là phần mềm nguồn mở miễn phí.

 

Note
Ngoài pgAdmin, còn nhiều công cụ khác dùng để quản trị PostgreSQL như phpPgAdmin, Navicat, EMS SQLManager, Lightning Admin… 

 

Super user | DBA user

 

Mặc định khi cài đặt, sẽ có 1 user quản trị tên là postgres chưa đặt password. Ta có thể đặt password cho user này bằng cách đăng nhập vào psql trên server và thực hiện lệnh alter:

 

 

Nếu không muốn lộ password, có thể dùng lệnh \password

 

 

postgres là super user, là user mạnh nhất, mặc định có quyền quản trị tất cả các database và các quyền mạnh khác. Để giới hạn, ta có thể tạo các dba user có quyền quản trị các database xác định

 

 

Khi đã có username, password, ta tạo kết nối từ pgAdmin như sau

 

pg_1

 

Kết quả

 

pg_2

 

Như vậy là ta đã có thể kết nối tới database PostgreSQL. Ngoài cách dùng đầy đủ thông tin, ta còn có thể cấu hình 1 số tập tin để việc kết nối tiện dụng hơn, mình sẽ giới thiệu ở bài viết tiếp theo.