Hướng dẫn cài đặt PostgreSQL trên Ubuntu 18.04

0
206

Cài đặt PostgreSQL trên Ubuntu 18 – PostgreSQL hoặc Postgres là một hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng mã nguồn mở với nhiều tính năng nâng cao cho phép bạn tạo các ứng dụng web phức tạp.

Trong bài viết này HOSTVN sẽ hướng dẫn các bạn cách cài đặt PostgreSQL trên Ubuntu 18.

Cài đặt PostgreSQL trên Ubuntu

Tại thời điểm viết bài viết này, phiên bản mới nhất của PostgreSQL có sẵn từ kho ứng dụng chính thức của Ubuntu là PostgreQuery phiên bản 10.12.

Để cài đặt PostgreSQL trên máy chủ Ubuntu của bạn, hãy làm theo các bước dưới đây:

1. Cài đặt PostgreSQL

Đầu tiên các bạn tiến hành  cập nhật hệ thống bằng lệnh sau

sudo apt update && sudo apt upgrade -y

Sau khi quá trình cập nhật hoàn tất hãy sử dụng lệnh sau để cài đặt PostgreSQL

sudo apt install postgresql postgresql-contrib -y

2. Xác minh cài đặt PostgreSQL

Sau khi quá trình cài đặt hoàn tất, dịch vụ PostgreSQL sẽ tự động khởi động. Để xác minh cài đặt và kiểm tra phiên bản PostgreSQL các bạn sử dụng lệnh sau:

sudo -u postgres psql -c "SELECT version();"
psql là một tiện ích dòng lệnh cho phép bạn tương tác với máy chủ PostgreSQL.

Screenshot_76 - Cài đặt PostgreSQL trên Ubuntu 18

3. Roles và phương thức xác thực của PostgreSQL

Quyền truy cập cơ sở dữ liệu trong PostgreSQL được xử lý với khái niệm Roles. Một Roles có thể đại diện cho người dùng hoặc một nhóm người dùng.

PostgreSQL hỗ trợ nhiều phương thức xác thực. Các phương pháp được sử dụng phổ biến nhất là:

  • Trust – Với phương thức này, Role có thể kết nối mà không cần mật khẩu, miễn là các tiêu chí được xác định trong pg_hba.conf được đáp ứng.
  • Password – Một Role có thể kết nối bằng cách cung cấp mật khẩu. Mật khẩu có thể được lưu trữ dưới dạng scram-sha-256, md5 hoặc dạng text không mã hoá.
  • Ident – Phương pháp này chỉ được hỗ trợ trên các kết nối TCP/IP. Nó hoạt động bằng cách lấy tên người dùng hệ điều hành khách hàng, với ánh xạ tên người dùng tùy chọn.
  • Peer – Tương tự như Ident nhưng nó chỉ hỗ trợ trên các kết nối nội bộ (Local).

Xác thực ứng dụng khách PostgreSQL được xác định trong tệp cấu hình có tên pg_hba.conf. Theo mặc định, đối với các kết nối nội bộ (Local), PostgreSQL sẽ sử dụng phương thức xác thực Peer.

User postgres được tạo tự động khi bạn cài đặt PostgreSQL. Người dùng này là superuser của PostgreSQL và nó tương đương với người dùng root trong MySQL.

Để đăng nhập vào máy chủ PostgreSQL với tư cách là User postgres, trước tiên bạn cần chuyển sang user postgres và sau đó truy cập vào dấu nhắc PostgreQuery bằng tiện ích psql:

sudo su - postgres
psql

Từ đây bạn có thể tương tác với ví dụ PostgreSQL của bạn. Để thoát khỏi PostgreSQL, gõ lệnh:

\q

Bạn cũng có thể truy cập PostgreSQL mà không cần chuyển đổi người dùng bằng lệnh sudo:

sudo -u postgres psql

Người dùng postgres thường chỉ được sử dụng với kết nối nội bộ (Local) và không nên đặt mật khẩu cho người dùng này.

4. Tạo Role và cơ sở dữ liệu PostgreSQL

Chỉ có superuser và user có đặc quyền CREATEROLE mới có thể tạo ra Roles mới.

Trong ví dụ sau, chúng tôi sẽ tạo một Roles mới có tên là hostvn một cơ sở dữ liệu có tên hostvndb và cấp các đặc quyền trên cơ sở dữ liệu.

  • Kết nối với Shell PostgreSQL
sudo -u postgres psql
  • Tạo một Roles PostgreSQL mới

Lệnh sau sẽ tạo một Roles mới có tên hostvn:

create role hostvn;
  • Tạo cơ sở dữ liệu PostgreSQL mới

Tạo một cơ sở dữ liệu mới có tên hostvndb bằng lệnh createdb:

create database hostvndb;

Screenshot_77

  • Cấp đặc quyền

Để cấp quyền cho người dùng hostvn trên cơ sở dữ liệu hostvndb đã tạo ở bước trước, hãy chạy truy vấn sau:

grant all privileges on database hostvndb to hostvn;

Screenshot_78

5. Kết luận

Qua bài viết này HOSTVN đã hướng dẫn các bạn cài đặt PostgreSQL trên Ubuntu 18 cũng như tìm hiểu cách tạo Role, database và cấp đặc quyền cho Role. nếu có bất kỳ ý kiến đóng góp nào các bạn có thể để lại bình luận ở bên dưới. Ngoài ra các bạn có thể xem thêm Hướng dẫn cài đặt MariaDB trên Ubuntu 18.

email-business-leaderboard-blog-v3.png
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments