Bỏ qua để đến nội dung

Supabase

Supabase dùng hướng dẫn PostgreSQL bên dưới. Điểm khác:

  • SSL khóa ở verify-full: kết nối luôn được mã hóa và kiểm tra chứng chỉ. Bảng chế độ SSL bên dưới không áp dụng.
  • Port mặc định là 5432 và database thường là postgres.
  • Dùng kết nối direct hoặc session pooler (port 5432). Transaction pooler (*.pooler.supabase.com port 6543) bị từ chối.
  • Không có DirectQuery: bảng chỉ được import vào Data Table.
  • Các schema hệ thống của Supabase (extensions, graphql, realtime, vault, cron và một số schema khác) được ẩn.
  • SSH tunnel và On-premises (qua Gateway) giống hướng dẫn PostgreSQL.

Kết nối database PostgreSQL với Fresco BI. Fresco BI chỉ đọc: liệt kê schema, bảng và cột, import bảng vào một Data Table, hoặc truy vấn trực tiếp bằng DirectQuery.

Tính năng Hỗ trợ
Import Có
DirectQuery Có
SSL/TLS 6 chế độ, mặc định require
SSH tunnel Có
Cloud Có
On-premises (qua Gateway) Có
  • Một PostgreSQL server và tên database cần đọc.
  • Một người quản trị có quyền tạo role và cấp quyền.
  • Đường mạng từ Fresco BI tới host và port của server (Cloud), hoặc một máy bastion SSH, hoặc một Gateway Agent trong mạng của database (On-premises).

Đăng nhập bằng tài khoản quản trị và chạy lệnh sau, lặp lại cho mỗi schema cần đọc:

CREATE ROLE fresco_reader WITH LOGIN PASSWORD '<strong-password>';
GRANT CONNECT ON DATABASE <database> TO fresco_reader;
GRANT USAGE ON SCHEMA <schema> TO fresco_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA <schema> TO fresco_reader;

Lệnh trên không áp dụng cho bảng tạo sau này. Để tài khoản đọc được cả bảng mới, chạy thêm (bằng role tạo bảng, hoặc ghi rõ role đó):

ALTER DEFAULT PRIVILEGES FOR ROLE <table_owner> IN SCHEMA <schema>
GRANT SELECT ON TABLES TO fresco_reader;

Fresco BI chỉ liệt kê các schema mà tài khoản có quyền USAGE và các bảng, view mà tài khoản SELECT được. Fresco BI chỉ đọc, nhưng bạn vẫn nên dùng role không có quyền ghi.

Cloud. Cho phép kết nối vào từ các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê) trên port của database (mặc định 5432).

  • Amazon RDS / Aurora: thêm inbound rule vào security group của instance: loại PostgreSQL, TCP 5432, source là từng IP dạng /32.
  • Server tự quản: đặt listen_addresses trong postgresql.conf để server lắng nghe trên interface public, mở port trên firewall của máy, rồi thêm một dòng pg_hba.conf cho mỗi IP và reload:
Terminal window
hostssl <database> fresco_reader <fresco-ip>/32 scram-sha-256

SSH tunnel. Nếu database chỉ mở cho một máy bastion, giữ Cloud và bật SSH tunnel trên form. Cho phép các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê) vào port SSH của bastion, và cho bastion đi tới database.

On-premises (qua Gateway). Nếu database nằm trong mạng nội bộ, chọn On-premises (qua Gateway); khung này sẽ chuyển sang hướng dẫn Gateway.

  1. Kiểu kết nối: Cloud hoặc On-premises (qua Gateway). Với On-premises, chọn Cụm gateway.
  2. Tên hiển thị: tên mà nhóm của bạn thấy trong Fresco BI.
  3. Máy chủ: tên DNS hoặc IP public của server, không kèm https:// hay port.
  4. Cổng: đã điền sẵn 5432; đổi nếu server dùng port khác.
  5. Database: tên database, ví dụ analytics.
  6. Tài khoản và Mật khẩu: role fresco_reader ở Bước 1.
  7. Chế độ SSL: xem bảng bên dưới. Nên giữ require trở lên.
  8. Chứng chỉ CA (PEM): hiện với verify-ca và verify-full. Dán CA đã ký chứng chỉ server (bắt buộc với verify-ca); để trống với verify-full thì dùng kho chứng chỉ hệ thống.
  9. Kết nối qua SSH tunnel (bastion) (chỉ Cloud): điền Máy chủ SSH, Cổng SSH (22), Tài khoản SSH, Khóa riêng SSH (OpenSSH hoặc PEM) và Mật khẩu của khóa (nếu có). Khóa phải là Ed25519 hoặc RSA từ 3072 bit. Lần kiểm tra đầu tiên hiện khóa của bastion; so với vân tay do quản trị viên cung cấp, bấm Tin khóa này, rồi kiểm tra lại.
  10. Bấm Kiểm tra kết nối, rồi Lưu.
Chế độ Ý nghĩa
disable Không mã hóa
allow Chỉ mã hóa khi server đòi
prefer Mã hóa nếu server hỗ trợ
require (mặc định) Luôn mã hóa, không kiểm tra chứng chỉ
verify-ca Mã hóa, kiểm tra chứng chỉ do CA tin cậy ký
verify-full Mã hóa, kiểm tra CA và tên máy chủ (an toàn nhất)

Ô Chứng chỉ CA (PEM) chỉ hiện với verify-ca và verify-full. verify-ca bắt buộc có chứng chỉ CA.

  • Máy chủ từ chối tài khoản hoặc mật khẩu. Kiểm tra tài khoản và mật khẩu. Kiểm tra thêm pg_hba.conf đã có dòng cho IP của Fresco BI và tài khoản này.
  • Không mở được kết nối tới máy chủ và cổng này. Kiểm tra máy chủ, cổng, và firewall đã cho phép IP của Fresco BI chưa. Thêm các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê) vào security group hoặc firewall.
  • Máy chủ từ chối kết nối ở cổng này: database không lắng nghe ở cổng đó hoặc firewall từ chối. Kiểm tra port và listen_addresses.
  • Máy chủ không phản hồi kịp. Thường do firewall chặn im lặng hoặc sai máy chủ, cổng. Kiểm tra rule firewall và host.
  • Không phân giải được tên máy chủ (DNS). Kiểm tra lại ô Máy chủ. Dùng tên DNS public đầy đủ.
  • Địa chỉ máy chủ thuộc dải bị chặn (nội bộ, loopback hoặc metadata). Database trong mạng nội bộ cần kết nối On-premises qua Gateway. Dùng địa chỉ public, hoặc chọn On-premises (qua Gateway).
  • Chứng chỉ máy chủ không do CA tin cậy ký. Dán đúng chứng chỉ CA vào ô Chứng chỉ CA. Với RDS, dán CA bundle của AWS RDS cho region của bạn.
  • Chứng chỉ máy chủ không cấp cho tên máy chủ đã nhập. Nhập đúng tên trong chứng chỉ hoặc chọn chế độ chỉ kiểm tra CA. Nhập đúng tên trong chứng chỉ, hoặc dùng verify-ca.
  • Máy chủ bắt buộc mã hóa nhưng chế độ đã chọn không mã hóa. Chọn một chế độ SSL có mã hóa. Chọn require trở lên.