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

SingleStore

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

  • Cổng mặc định là 3306. Chế độ SSL giống MySQL (mặc định required).
  • Không có DirectQuery: bảng chỉ được nạp vào Data Table (Import).
  • Không có SSH tunnel: dùng Cloud và 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ê), hoặc On-premises (qua Gateway).
  • Fresco BI không đặt phiên chỉ đọc trên SingleStore, nên chính tài khoản phải chỉ đọc: chỉ cấp SELECT trên <database>.*.
  • Hỗ trợ từ SingleStore 8.5. Không đọc foreign key, và mỗi bảng được đọc bằng một câu lệnh riêng (không có snapshot chung giữa các bảng).

Kết nối database MySQL với Fresco BI. Fresco BI đọc bảng và view bằng một phiên chỉ đọc, rồi nạp vào Data Table (Import) hoặc truy vấn trực tiếp (DirectQuery).

Tính năng Hỗ trợ
Import Có
DirectQuery Có
SSL/TLS preferred, required (mặc định), verify_ca, verify_identity
SSH tunnel Có
Cloud Có
On-premises (qua Gateway) Có
  • Máy chủ MySQL nhận kết nối TCP ở cổng của nó (mặc định 3306).
  • Một tài khoản quản trị chạy được CREATE USER và GRANT.
  • Tên database cần đọc.
  • Nên bật SSL trên máy chủ. Fresco BI cần TLS 1.2 trở lên.

Tạo một tài khoản riêng chỉ có quyền đọc. Phần host ('%' bên dưới) nên hẹp nhất có thể: mỗi IP của Fresco BI một dòng, hoặc IP của máy bastion hay máy Gateway.

CREATE USER 'fresco_reader'@'%' IDENTIFIED BY '<strong-password>';
GRANT SELECT, SHOW VIEW ON <database>.* TO 'fresco_reader'@'%';

Quyền trên <database>.* áp dụng luôn cho các bảng tạo sau này trong database đó, nên không cần bước riêng cho bảng mới. Lặp lại GRANT cho từng database bạn muốn duyệt. Fresco BI cũng mở mỗi phiên với transaction_read_only = ON, nên không bao giờ ghi kể cả khi tài khoản có quyền ghi.

Bắt buộc TLS cho tài khoản này (nên làm):

ALTER USER 'fresco_reader'@'%' REQUIRE SSL;

Chọn một trong các cách:

  • Cloud (database mở ra internet). 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ê) ở cổng MySQL. Trên AWS RDS, thêm inbound rule TCP 3306 cho từng địa chỉ vào security group của instance. Trên Google Cloud SQL hoặc Azure, thêm các địa chỉ này vào authorized networks hoặc firewall rule. Phần host của tài khoản MySQL cũng phải khớp các địa chỉ này.
  • SSH tunnel. Nếu database chỉ mở cho một máy bastion, giữ Cloud và bật SSH tunnel trong form (Bước 3). Database chỉ cần nhận kết nối từ bastion.
  • On-premises (qua Gateway). Nếu database nằm trong mạng nội bộ, chọn On-premises (qua Gateway) trong form. Khi chọn, khung này chuyển sang hướng dẫn Gateway.
  • Kiểu kết nối: Cloud hoặc On-premises (qua Gateway). Với On-premises, chọn Cụm gateway.
  • Tên hiển thị: tên nguồn hiện trong Fresco BI.
  • Máy chủ: tên DNS hoặc IP public của máy chủ, ví dụ mydb.abc123.us-east-1.rds.amazonaws.com.
  • Cổng: điền sẵn 3306; đổi nếu máy chủ nghe ở cổng khác.
  • Database: database mà phiên mở ra. Bạn vẫn duyệt được mọi database khác mà tài khoản nhìn thấy.
  • Tài khoản: fresco_reader.
  • Mật khẩu: mật khẩu ở Bước 1. Được lưu mã hóa và không hiện lại.
  • Chế độ SSL: xem bảng bên dưới. Nên giữ required trở lên.
  • Chứng chỉ CA (PEM): chỉ hiện với verify_ca và verify_identity. Dán CA của bạn (với RDS là bộ CA của AWS RDS); để trống thì dùng kho chứng chỉ hệ thống.
  • Kết nối qua SSH tunnel (bastion): chỉ với Cloud. Điền Máy chủ SSH, Cổng SSH (mặc định 22), Tài khoản SSH và Khóa riêng SSH (OpenSSH hoặc PEM) (Ed25519, hoặc RSA từ 3072 bit), cùng Mật khẩu của khóa (nếu có). Lần kiểm tra đầu tiên hiện khóa máy chủ của bastion: so với vân tay do quản trị bastion cung cấp, bấm Tin khóa này, rồi kiểm tra lại.

Bấm Kiểm tra kết nối, rồi Lưu.

Chế độ Ý nghĩa
preferred Thử SSL; máy chủ không có SSL thì kết nối không mã hóa.
required (mặc định) Luôn SSL. Không kiểm tra CA và tên máy chủ.
verify_ca Luôn SSL. Kiểm tra chuỗi chứng chỉ, không kiểm tra tên máy chủ.
verify_identity Luôn SSL. Kiểm tra chuỗi chứng chỉ và tên máy chủ. An toàn nhất.

Ô Chứng chỉ CA (PEM) hiện với verify_ca và verify_identity. Khi không có TLS, Fresco BI không gửi mật khẩu qua các cơ chế clear-text hoặc public key, nên tài khoản MySQL 8 dùng caching_sha2_password có thể thất bại với preferred trên máy chủ không bật SSL.

  • Máy chủ từ chối tài khoản hoặc mật khẩu. Kiểm tra mật khẩu, và phần host của tài khoản có khớp địa chỉ Fresco BI kết nối từ đó không (MySQL từ chối host không được phép với cùng lỗi này).
  • Tài khoản MySQL này cần kết nối SSL để gửi mật khẩu. Chọn chế độ SSL required trở lên. Bật SSL trên máy chủ và chọn required, verify_ca hoặc verify_identity.
  • 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 cổng và MySQL có nghe trên interface public không (bind-address).
  • 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. 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ê) trong security group hoặc firewall.
  • Đị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 tên máy chủ public, SSH tunnel, hoặc On-premises (qua Gateway).
  • Máy chủ không hỗ trợ SSL nhưng chế độ SSL đã chọn bắt buộc mã hóa. Bật SSL trên máy chủ hoặc chọn chế độ không bắt buộc. Nên bật SSL trên MySQL thay vì hạ chế độ.
  • 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. Dán CA đã ký chứng chỉ máy chủ (hoặc chứng chỉ tự ký của máy chủ).
  • 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 host đúng như trong chứng chỉ, hoặc dùng verify_ca.
  • Tài khoản không có quyền đọc đối tượng này. Chạy lệnh GRANT SELECT, SHOW VIEW ở Bước 1 cho database đó.