Chuyển đến nội dung chính

Bạn dùng TablePro hằng ngày? License thêm tính năng trả phí và nuôi bản phát hành tiếp theo. Mua licenseMua license ủng hộ TablePro

Connection, tunnel và thông tin đăng nhập

Dành cho bạn khi cơ sở dữ liệu nằm sau bastion, trong một cluster hay sau một lớp đăng nhập cloud: thiết lập connection một lần, kèm đường kết nối và nguồn mật khẩu mà nó cần, rồi đặt quy tắc chặt hơn cho các connection production. Mọi thứ ở đây có trong ứng dụng Mac; phần cuối nói về iPhone và iPad.
MaciPhone và iPad

Tính năng trả phí trên trang này: Environment Variables (gói Starter). Mọi thứ khác trên trang đều miễn phí.

Quản lý thư viện connection

Mỗi connection được chỉnh trong một form gồm các tab Tổng quát, Mạng, Tùy chọn và Giao diện (General, Network, Options, Appearance). Import một URL kết nối, kể cả URL jdbc: và URL +ssh có kèm chặng SSH, form sẽ tự điền; nếu clipboard đang có sẵn một URL như vậy, form sẽ gợi ý Dùng URL trong clipboard (Use clipboard URL).

Gán cho connection một màu, bao nhiêu tag tùy ý và một vị trí trong các nhóm lồng nhau, rồi đánh dấu yêu thích những connection bạn dùng nhiều nhất. Môi trường được quản lý bằng tag: local, development, production và testing có sẵn, và bạn có thể thêm tag riêng. Khi thư viện còn trống, TablePro gợi ý Mở cơ sở dữ liệu mẫu (Open Sample Database), một bản SQLite của Chinook đi kèm ứng dụng.

Cửa sổ Welcome liệt kê các connection đã lưu trong nhóm Production và Staging với tag màu, cùng cơ sở dữ liệu mẫu Chinook.

Mang theo các connection bạn đã có

Hiếm khi bạn bắt đầu từ một danh sách trống: TablePro đọc connection từ một database client khác, từ file cấu hình của dự án hoặc từ tài khoản AWS của bạn.

Từ một database client khác

Nhập từ ứng dụng khác (Import from Other App) đọc các connection đã lưu trong TablePlus, Sequel Ace, DBeaver, DataGrip, Beekeeper Studio và Navicat, kể cả bản Setapp của TablePlus, và mang theo mật khẩu nếu ứng dụng đó có lưu, bao gồm cả mật khẩu đã mã hóa mà DBeaver và Navicat giữ. Connection từ Navicat được lấy từ file export .ncx.

Hộp thoại Import from DataGrip liệt kê ba connection tìm thấy trong DataGrip, mỗi connection được đánh dấu sẵn sàng để import.

Từ file cấu hình của dự án

Mở thư mục dự án (Open Project Folder) quét một dự án để tìm thiết lập cơ sở dữ liệu trong .env, wp-config.php, schema Prisma, config/database.yml của Rails, docker-compose.yml, application.properties hoặc application.yml của Spring, và appsettings.json. Mỗi bộ thông tin tìm được hiện kèm tên file chứa nó, và bộ bạn chọn sẽ được điền sẵn vào form connection; mật khẩu được lưu thẳng vào Keychain. Khi prod, production hay live xuất hiện như một từ riêng trong đường dẫn file, host hoặc tên cơ sở dữ liệu, connection đó bắt đầu ở mức Safe Mode Alert.

Kết quả Open Project Folder cho project acme-shop, với các connection tìm thấy trong .env và .env.production.

Từ tài khoản AWS

Import from AWS liệt kê các RDS instance và Aurora cluster mà một AWS profile nhìn thấy trong các region bạn chọn, rồi thêm những cái bạn muốn. Profile đó cần quyền rds:DescribeDBInstances và rds:DescribeDBClusters.

Kết nối tới cơ sở dữ liệu sau bastion, proxy hay trong cluster

SSH và TLS

SSH tunnel xác thực bằng mật khẩu, private key, SSH agent (chẳng hạn agent của 1Password) hoặc keyboard-interactive, và có thể đi lần lượt qua các jump host hoặc dùng ProxyJump trong ~/.ssh/config. Mã dùng một lần có thể được sinh từ secret lưu trong Keychain hoặc được hỏi ở mỗi lần kết nối, và với một host key lạ, TablePro hiện fingerprint của nó trước khi tin cậy. Lưu một tunnel thành SSH profile để dùng lại.

TLS có các chế độ Disabled, Preferred, Required, Verify CA và Verify Identity, với CA, chứng chỉ client và key của riêng bạn. Required mã hóa nhưng không kiểm tra chứng chỉ của server; các chế độ Verify thì có kiểm tra.

Phần cài đặt SSH trong form connection: host bastion.acme.internal, user deploy, xác thực bằng key và một jump host.

Proxy, Cloudflare, Cloud SQL và tunnel command

Khi không vào được bằng SSH, tab Mạng (Network) kết nối qua SOCKS5 proxy có phân giải DNS ở phía proxy, qua Cloudflare Access, khi đó TablePro chạy cloudflared và đăng nhập bằng trình duyệt hoặc service token, hoặc qua Cloud SQL Auth Proxy, được TablePro tải về, kiểm tra và chạy cho PostgreSQL, MySQL và SQL Server.

Tunnel Command chạy kubectl port-forward, aws ssm start-session hoặc một lệnh của riêng bạn, rồi kết nối vào port cục bộ mà lệnh đó mở ra. Một connection còn có thể chạy một shell script trước khi kết nối, có hỏi bạn trước ở mỗi phiên làm việc, và chạy các câu lệnh SQL ngay sau khi kết nối.

Một connection dùng tunnel kubectl port-forward tới svc/orders-db, kèm câu lệnh sẽ chạy.

Đăng nhập bằng tài khoản cloud

Xác thực cơ sở dữ liệu bằng AWS IAM ký một token mới cho mỗi lần kết nối, từ access key, một profile trong ~/.aws (hỗ trợ credential_process và assume role) hoặc AWS IAM Identity Center, và nâng TLS lên Required cho kết nối đó. Amazon ElastiCache for Redis, Amazon Keyspaces và DynamoDB có cơ chế ký AWS riêng.

SQL Server đăng nhập bằng Microsoft Entra ID qua trình duyệt, với client ID của app registration do bạn cung cấp, hoặc bằng Kerberos từ ticket có sẵn hay từ principal và mật khẩu. Google BigQuery nhận service account key, Application Default Credentials hoặc Google OAuth với client của riêng bạn, còn Google Cloud Spanner và Cloud SQL Auth Proxy có thể dùng tài khoản Google của bạn.

Xác thực AWS IAM trên RDS và Aurora
PostgreSQL, MySQL, MariaDB

Giữ mật khẩu ở đúng chỗ

Mật khẩu được lưu trong Keychain của macOS; khi bật iCloud Sync, tính năng đồng bộ mật khẩu đưa chúng sang các thiết bị khác của bạn qua iCloud Keychain. SSH key vẫn là một file trên đĩa mà connection trỏ tới; chỉ passphrase của nó được lưu vào Keychain.

Credential profile dùng chung một thông tin đăng nhập cho nhiều connection và có thể lấy mật khẩu lúc kết nối từ 1Password (op), HashiCorp Vault, AWS Secrets Manager, một shell command, một file hoặc một biến môi trường. Các nguồn mật khẩu này miễn phí, không bao giờ được đồng bộ, và mỗi công cụ dòng lệnh phải nằm trong PATH, hoặc trong /usr/local/bin hay /opt/homebrew/bin. Connection cũng có thể dùng ~/.pgpass với PostgreSQL, Amazon Redshift và CockroachDB, hoặc hỏi mật khẩu ở mỗi lần kết nối.

Environment Variables

Environment Variables: gói Starter

Viết $DB_HOST vào host, tên cơ sở dữ liệu, tên người dùng, SSH host, SSH user và đường dẫn key, đường dẫn SSL, startup command hay các trường của driver trong một connection, và TablePro điền giá trị từ môi trường của chính nó khi kết nối. Port và mật khẩu không bao giờ được đọc theo cách này; với mật khẩu, hãy dùng một nguồn mật khẩu.

Quy tắc riêng của từng connection

Mức Safe Mode của connection quyết định một câu lệnh được chạy ngay, được hỏi lại trước, cần Touch ID hoặc mật khẩu, hay bị từ chối. Mức External Clients (Blocked, Read Only hoặc Read & Write) quyết định MCP client và AppleScript được làm gì với connection đó, và chỉ nằm trên máy Mac này. AI policy (Always Allow, Ask Each Time hoặc Never) quyết định trợ lý AI được dùng connection mà không cần hỏi, chỉ sau khi hỏi, hay không bao giờ; Never còn chặn luôn MCP client.

Tổ chức của bạn có thể áp một mức Safe Mode tối thiểu cho mọi connection, và kiểm soát việc cập nhật, thông qua configuration profile.

Timeout khi kết nối và khi chạy query

Mỗi connection có thể đặt connect timeout riêng, tính cả mạng, TLS, đăng nhập và mọi tunnel hay proxy, cùng query timeout riêng thay cho giá trị chung của ứng dụng. Query timeout áp dụng cho các driver hỗ trợ nó, sau khi bạn kết nối lại.

Trên iPhone và iPad

Ứng dụng cho iPhone và iPad có form connection riêng cho MySQL, MariaDB, TiDB, OceanBase, PostgreSQL, SQLite, DuckDB, Redis, SQL Server và Oracle, với nhóm, một tag cho mỗi connection và mục yêu thích. SSH tunnel xác thực bằng mật khẩu hoặc private key, từ file hoặc dán vào, và có kiểm tra host key; SSH agent và jump host không được hỗ trợ trên iPhone và iPad. TLS có thể kiểm tra chứng chỉ của server, trừ với SQL Server: kết nối được mã hóa nhưng không kiểm tra. Chứng chỉ chỉ nằm trên thiết bị và không bao giờ được đồng bộ.

Mật khẩu và key dán vào được lưu trong Keychain. Connection SQL Server đồng bộ từ Mac có thể đăng nhập bằng Microsoft Entra ID. Import từ ứng dụng khác, đăng nhập bằng AWS IAM, Kerberos và Google, proxy và tunnel command, nguồn mật khẩu và timeout chỉ có trong ứng dụng Mac.

Dùng được ở đâu

Từng tính năng trên trang này, gói cần có trên Mac và những gì có trên iPhone và iPad
Tính năng
Form connection, nhóm, tag và mục yêu thíchMac: Miễn phíiPhone và iPad: Một tag cho mỗi connection; không có màu
Import từ URL hoặc clipboardMac: Miễn phíiPhone và iPad: Không có
Import từ ứng dụng khác, thư mục dự án và AWSMac: Miễn phíiPhone và iPad: Không có
SSH tunnel bằng mật khẩu hoặc private keyMac: Miễn phíiPhone và iPad: Miễn phí
SSH agent, mã dùng một lần và jump hostMac: Miễn phíiPhone và iPad: Không có
TLS có kiểm tra chứng chỉMac: Miễn phíiPhone và iPad: SQL Server mã hóa nhưng không kiểm tra
SOCKS5, Cloudflare Access, Cloud SQL Auth Proxy và Tunnel CommandMac: Miễn phíiPhone và iPad: Không có
Đăng nhập bằng AWS IAM, Kerberos và GoogleMac: Miễn phíiPhone và iPad: Không có
Microsoft Entra IDMac: Miễn phíiPhone và iPad: Với connection đồng bộ từ Mac
Lưu mật khẩu trong KeychainMac: Miễn phíiPhone và iPad: Miễn phí
Nguồn mật khẩu, credential profile và ~/.pgpassMac: Miễn phíiPhone và iPad: Không có
Environment VariablesMac: Gói StarteriPhone và iPad: Không có
Safe Mode cho từng connectionMac: Miễn phíiPhone và iPad: Off, Confirm Writes và Read-Only
Connect timeout và query timeoutMac: Miễn phíiPhone và iPad: Không có
Mức Safe Mode tối thiểu qua configuration profileMac: Miễn phíiPhone và iPad: Không có

Giới hạn nên biết

  • Nguồn mật khẩu, cùng proxy và tunnel command trong tab Mạng, chỉ nằm trên máy Mac nơi bạn thiết lập: chúng không bao giờ được đồng bộ, nên một connection đồng bộ sang máy Mac khác cần thiết lập lại các phần này.
  • TablePro đọc môi trường mà nó được khởi chạy cùng. Khi mở từ Dock hoặc Finder, ứng dụng không thấy các biến do shell profile của bạn đặt, nên cả nguồn mật khẩu từ biến môi trường lẫn Environment Variables đều bị ảnh hưởng.
  • Khi gói trả phí kết thúc, $DB_HOST và các tham chiếu khác không còn được điền giá trị mà được gửi tới server nguyên văn, không có cảnh báo nào.
  • Mở thư mục dự án (Open Project Folder) chỉ import một lần: không có gì được theo dõi, và import cùng một bộ thiết lập hai lần sẽ tạo ra hai connection.
  • Xác thực AWS IAM dùng được với PostgreSQL, MySQL và MariaDB, không dùng được với Amazon Redshift. Configuration profile chỉ áp được mức Safe Mode tối thiểu và thiết lập cập nhật, ngoài ra không có gì khác.

Tải TablePro

TablePro là phần mềm mã nguồn mở, dùng miễn phí. Các gói trả phí bổ sung một số tính năng cho ứng dụng Mac.
Tải về cho Mac

macOS 13 Ventura trở lênApple silicon hoặc Intel

Tải về trên App Store

iPhone và iPadiOS và iPadOS 18 trở lên

Xem bảng giá