hs-sql-agent 的設計原則是:AI 模型本身不能成為安全邊界。身分驗證、資料庫範圍、資料表存取政策、工具限制、SQL 驗證與資料修改核准,都由伺服器強制執行。
MCP 存取邊界
MCP 用戶端使用已發行的金鑰進行身分驗證。執行階段政策可以把金鑰綁定到指定資料庫,並限制它可存取的資料表與工具。
對於唯讀用戶端,應直接限制允許工具清單,而不是依賴用戶端「自行避免」呼叫 DML。
SQL 執行邊界
AI 產生的 SQL 會先解析與驗證,之後才編譯成目標資料庫對應的 SQL。不支援的語法,或無法確認能在目標資料庫安全維持相同語意的功能,都會依「失敗即拒絕」原則拒絕,不會偷偷降級成別的含義。
DML 使用獨立的核准協定。人工核准會綁定到已驗證的資料修改計畫;對於修改既有資料列的操作,真正執行前還會在認可交易中重新驗證目標資料列。
管理員身分驗證
伺服器支援本機身分驗證,也可以選擇設定 OIDC/SSO 與 TOTP MFA。OIDC 設定包含 Authority、用戶端認證資訊、宣告對應、權限範圍、角色對應、已驗證電子郵件要求與自動建立使用者等選項。
如果受保護的登入狀態或 MFA 狀態需要在應用程式重新啟動後繼續有效,請把設定的資料保護金鑰路徑放在永久儲存空間中。
維運保護
與安全相關的主要執行階段設定包括:
- 登入失敗鎖定門檻與鎖定時間
- 全域與要求層級的速率限制
- 分散式環境中的安全政策同步
- 帶簽章的警示與 SIEM Webhook
- 稽核資料保留期間與封存/備援路徑
- 分散式控制異常時的「失敗即拒絕」協調方式
回報安全漏洞
請勿在公開 Issue 中揭露安全漏洞。應使用儲存庫 GitHub Security Advisory 中的 Report a Vulnerability 流程,讓問題依負責任揭露方式進行調查與修正。