跳至主要內容
hs-sql-agent
2.0.2
文件 2.0.2
文件 管理

Permissions

理解 hs-sql-agent 2.0.1 Admin operations 使用的 path-and-action authorization model。

Permission path 識別受保護的 Admin resource,例如 /runtime/db-management 或 /auth/user。
Action 識別可執行操作,例如 view、create、edit、delete、export。
Role selection Role 只會保存 server template inventory 裡合法的 permission/action pair。

2.0.1 的 Admin authorization 以 permission path + action code pair 執行。Controller 宣告需要的 pair,登入 member 則透過 assigned roles 取得權限。

Runtime 實例

受保護操作Required pair
查看 Database Management/runtime/db-managementview
建立 Database Management entry/runtime/db-managementcreate
編輯 semantic metadata/runtime/db-management/semanticedit
管理 MCP keys/runtime/mcp-keys 搭配對應 action
查看 users/auth/userview
編輯 roles/auth/roleedit
查看 audit/runtime/auditview
匯出 audit/runtime/auditexport
編輯 security policy/runtime/securityedit
retry outbound delivery/runtime/operabilityedit

因此只有 authentication 並不足以執行這些操作;所需 path/action pair 還必須能從 member 的 roles 解出。

Permission-action templates 是 authoritative inventory

Role API 提供 permission-action-templates inventory。每個 template 包含:

  • permission ID、name、path;
  • action ID、code、name。

Role payload 用 { PermissionId, ActionId } pair 提交選擇。Role service 會去除重複,並只保存 template inventory 中真實存在的組合。

Role 是 assignment unit

Member 被指派 roles,而 role 內含 permission/action selections:

Member
  └─ Role(s)
       └─ Permission path + Action

一個 member 可以有多個 roles,有效 Admin access 是這些 roles permission surface 的合併結果。

Authorization 變更會讓 stale state 失效

Role edit 屬於 security-sensitive mutation。Permission 改變時,role service 會找出受影響 members、遞增其 security version,並透過 auth runtime-state cache barrier 完成更新。

目的就是避免已登入 session 在 role definition 改變後仍長時間使用 stale authorization。

Protected SuperUser role

SuperUser 是 2.0.1 的 built-in protected role,不能透過一般 role management 修改或刪除,避免 full-control role 被偷偷重新定義成另一套 permission set。

相關文件