Mục lục

1. Giới thiệu

Ở một bài viết trước đây, tôi có hướng dẫn các bạn cấu hình để có thể kết nối từ máy bên ngoài vào trong PostgreSQL.

Đọc thêm  Cấu hình để kết nối với PostgreSQL từ bên ngoài

Trong bài viết này, tôi sẽ hướng dẫn bạn cụ thể hơn về cách cấu hình kết nối vào PostgreSQL bằng pg_hba.conf nhé.

Khi một máy khách (client) cố gắng kết nối với PostgreSQL database cluster, đầu tiên, nó phải qua được lớp xác thực ở mức hệ điều hành được cấu hình trong file pg_hba.conf. Các chính sách sẽ dựa trên các thông tin IP máy khách, tên người dùng database để quyết định xem máy khách có đi tiếp được hay không?
File pg_hba.conf thường được lưu trữ trong cùng thư mục với file postgresql.conf. Hoặc đường dẫn của nó có thể được tùy chỉnh bởi tham số hba_file.

postgres=# show hba_file ;
              hba_file              
------------------------------------
 /var/lib/pgsql/12/data/pg_hba.conf
(1 row)

 

2. Cấu trúc của file pg_hba.conf

Đây là nội dung 1 file pg_hba.conf tiêu chuẩn:

cau truc file pg_hba

 

3. Ý nghĩa

Cấu trúc của file pg_hba.conf như sau:

  • Mỗi dòng là 1 chính sách
  • Các cột được phân cách nhau bởi dấu khoảng trắng

Ý nghĩa các cột:

  • Cột TYPE có thể có các giá trị: local (chỉ cho phép kết nối từ localhost vào database), host (cho phép tất cả kết nối kể cả mã hóa hay không mã hóa), hostssl (chỉ cho phép kết nối có mã hóa SSL), hostnossql (chỉ cho phép kết nối không có mã hóa SSL).
  • Cột DATABASE chỉ ra database được phép kết nối trong chính sách
  • Cột USER chỉ ra tên database user được phép kết nối.
  • Cột ADDRESS chỉ ra dải IP được phép kết nối. Chú ý, giá trị của cột này là 1 dải mạng, do đó bạn cần phải chỉ ra cả subnet mask.
  • Cột METHOD chỉ ra phương  thức được phép sử dụng:
    • trust: Cho phép kết nối mà không yêu cầu thông tin xác thực.
    • peer: Cho phép kết nối nếu OS user máy khách trùng tên với Database user. Được dùng khi kết nối với database từ localhost.
    • ident: Tương tự như peer, nhưng nó hỗ trợ các kết nối từ bên ngoài.
    • password: Yêu cầu tên đăng nhập và mật khẩu. Tuy nhiên, mật khẩu sẽ không được mã hóa khi truyền từ máy khách đến database server.
    • md5: giống với password, tuy nhiên mật khẩu có được mã hóa theo thuật toán md5
    • scram-sha-256: giống với password, tuy nhiên mật khẩu được mã hóa theo thuật toán scram-sha-256.

 

5. Hoạt động

Khi có 1 yêu cầu kết nối từ máy khách, PostgreSQL sẽ lấy thông tin từ máy khách này, và đọc file pg_hba.conf từ trên xuống dưới.

Nếu thông tin máy khách phù hợp với chính sách được quy định, kết nối sẽ được thiết lập. Ngược lại nếu không có chính sách nào phù hợp thì yêu cầu kết nối sẽ bị từ chối.

Ví dụ, một dòng chính sách trong file pg_hba.conf như sau:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             postgres        10.239.42.106/32        md5

có nghĩa là: Máy khách có IP 10.239.42.106 có thể kết nối vào toàn bộ database (DATABASE=all), bằng user postgres (USER=postgres), sử dụng phương thức xác thực là nhập password (METHOD=md5)

Sau khi yêu cầu kết nối đã qua được chính sách của pg_hba.conf, tiến trình master của PostgreSQL sẽ tạo ra 1 tiến trình con và cho phép nó sử dụng shared buffer. Một kết nối được thiết lập.

 

Nguồn: https://dangxuanduy.com/

Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.

KHOÁ DÀNH CHO NGƯỜI MỚI

KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)

CÁC KHOÁ NÂNG CAO:

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c

KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD

CÁC KHOÁ COMBO:

COMBO 1: ADMIN 1 + MULTITENANT 12c

COMBO 2: ADMIN 1 + DATA GUARD

COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD

LỊCH HỌC:

Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE 

ĐĂNG KÝ:

https://forms.gle/MtCAoRQFenP886y79

Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x