管理端成員代表控制平面的身分,和用來驗證 /mcp 用戶端的 MCP 金鑰屬於不同安全邊界。
成員生命週期
01 建立成員
02 指派角色
03 操作管理介面
04 調整權限
05 需要時撤銷工作階段
建立成員需要有效的 email 與至少 8 個字元的密碼;Username 可以省略,上限為 100 個字元。建立時可直接指定 Role IDs,也可以要求指派所有角色。
成員清單支援文字搜尋、啟用狀態、角色篩選與分頁。hs-sql-agent 的成員檢視會顯示帳號狀態、建立時間、最後登入時間、有效工作階段數量,以及目前的角色 ID 與名稱。
成員管理動作
| 動作 | 權限 | 重要保護 |
|---|---|---|
| 建立成員 | /auth/user → create | 會驗證 email 與密碼 |
| 列出或搜尋成員 | /auth/user → view | 支援狀態、角色與文字篩選 |
| 取代成員角色 | /auth/user → edit | 不能修改自己的角色 |
| 啟用 / 停用帳號 | /auth/user → edit | 不能停用自己 |
| 撤銷指定成員的全部工作階段 | /auth/user → edit | 讓該成員目前的工作階段失效 |
| 要求下次登入修改密碼 | /auth/user → edit | 設定會在下一次登入時生效 |
| 刪除成員 | /auth/user → delete | 不能刪除自己 |
角色
角色具有唯一名稱、選填說明,以及一組 permission/action 選擇。角色與成員是多對多關係:一位成員可以擁有多個角色,同一角色也能指派給多位成員。
內建的 SuperUser 角色受到保護,不能修改或刪除,也不能建立或重新命名其他角色為這個受保護名稱。
修改角色會更新目前的授權狀態
角色的權限集合改變時,hs-sql-agent 會找出所有使用該角色的成員、遞增其 security version,並透過 auth runtime-state cache barrier 完成變更,避免已登入的工作階段長時間繼續使用舊授權結果。
刪除已指派的角色也遵循相同原則。
刪除角色前先檢查相依關係
角色相依關係端點會回報:
- 該角色擁有的 permission/action 項目;
- 目前被指派此角色的成員。
如果角色仍指派給任何成員,預設刪除操作會被拒絕。雖然系統提供明確的 force=true 路徑,但管理者應先檢查相依關係,因為受影響成員會失去這個角色,且其安全狀態也會更新。
密碼與工作階段處理
成員管理功能可以要求帳號在下次登入時修改密碼,也可以撤銷指定成員的全部工作階段。使用者自己則可透過 Auth API 管理自己的工作階段。
若要了解角色背後的授權模型,請繼續閱讀 權限。