許可權與安全
誰能看什麼、誰能改什麼——在執行時強制執行。
拿一個銷售組織來說:代表只能看自己團隊的客戶,成本價欄位對他們脫敏,經理能看整個大區,審計隨時要查"這條折扣誰改的"。在 ObjectOS 裡,這套邊界是一份可審閱的定義——在每一次查詢、API 呼叫和 AI 工具呼叫上強制執行。
- 3 層
- 物件、記錄、欄位三級控制,一個模型
- 按使用者
- AI Agent 繼承登入使用者的許可權
- 不可變
- 讀、寫、授權與工具呼叫全程留痕
許可權即後設資料
審閱者真的讀得懂的許可權。
這就是那個銷售場景:支援工單可讀可建、客戶只讀,成本相關欄位只讀、SSN 完全不可見,行級規則限定"只看本團隊"。執行時在所有入口統一執行——UI、API 和 AI 工具。
export const SupportPermissionSet = {
name: 'support_agent',
label: 'Support Agent',
objects: {
support_case: { allowRead: true, allowCreate: true, allowEdit: true, allowDelete: false },
crm_account: { allowRead: true, allowCreate: false, allowEdit: false, allowDelete: false },
},
// Field-level security
fields: {
payout: { readable: true, editable: false },
ssn: { readable: false, editable: false },
},
// Row-level security — CEL predicates enforced on every query
rowLevelSecurity: [
{
name: 'case_own_team',
label: 'Own Team Cases Only',
object: 'support_case',
operation: 'select' as const,
using: 'team == current_user.team',
roles: ['support'],
enabled: true,
priority: 10,
},
],
}; 訪問模型
把銷售組織的邊界一層層落下來
一個模型覆蓋全譜系——從大範圍的角色授權到單條共享記錄——例外不再演變成定製程式碼。
角色與許可權集
"銷售代表"是一個許可權集:客戶可讀可建、訂單可編輯、報價單不可刪。預設安全姿態——沒有定義明確允許之前,什麼都不可讀。
行級規則
"team == current_user.team" 一行表示式,代表就只看本團隊;換成沿組織層級向上,經理就看整個大區——過濾發生在查詢引擎內部,繞不過去。
欄位級安全
成本價對代表只讀、SSN 完全不可見——被脫敏的欄位在 UI、API、匯出和每一條 AI 回答裡都保持脫敏。
記錄共享
跨團隊協作一單大客戶?把這一條記錄共享給協作人,不用擴大整個角色——例外被記錄、可見、可撤銷。
租戶隔離
組織與工作區在執行時層保持隔離,多團隊、多客戶部署不會有任何意外共享。
許可權管理介面
矩陣裡勾出來,日誌裡查得到
Agent 寫的許可權定義,管理員在開源控制台裡開啟就是熟悉的矩陣——出了問題,審計檢視器一條條對得上。
許可權矩陣編輯器
Salesforce 式佈局:上半屏是物件級增刪改查與 View All/Modify All 勾選,點中某個物件,下半屏立即換成它的欄位級讀/寫矩陣。
看得見的分配
每個許可權集頁面直接列出"分配給了誰"——審閱許可權時不用去別處反查。
審計日誌檢視器
按動作、物件、操作者、時間篩選;點開任何一條,側抽屜展示完整事件與欄位的舊值 → 新值 diff——"這條折扣誰改的"三次點選有答案。
AI 呼叫並排可查
AI 工具呼叫和人的操作出現在同一份日誌裡,同樣的篩選、同樣的 diff——審查 AI 和審查人是同一種工作。
AI 同規
Agent 拿到的是你的許可權模型,不是服務賬號
失去 AI 控制最快的方式就是給它超級使用者許可權。ObjectOS 從不這麼做:每個 Agent 動作都以發起它的登入使用者身份執行。
使用者級執行
代表問 AI"我的客戶裡誰最可能續約",AI 看到的就是他那個團隊的客戶——成本價照樣脫敏,一分不多。
寫操作過審批
結構性變更與敏感動作在執行前排隊等人籤核,完整 diff 隨附。
一切被審計
記錄變更、許可權授予、會話吊銷、審批決定和 AI 工具呼叫,全部寫入不可變審計日誌。
決策面
改什麼、誰來審、跑什麼
| 審閱者會問 | AI 編寫 | 執行時執行 |
|---|---|---|
| 誰能讀這個物件? | 後設資料中的角色與許可權集 | 每次查詢、API 呼叫、工具呼叫都校驗 |
| 代表能看到哪些行? | 按所有者或團隊圈定的行級規則 | 過濾在查詢引擎內部生效 |
| AI 能看到成本價嗎? | 帶脫敏的欄位規則 | UI、API、匯出與 AI 回答全部脫敏 |
| 這個折扣誰改的? | 不用寫——審計是執行時自帶的 | 審計檢視器裡舊值 → 新值一條條對 |
評審清單
安全評審應確認
- 每個物件都有顯式的讀寫策略。
- 行級規則對應組織層級本身,而不是它的副本。
- 敏感欄位對所有消費方脫敏,包括 AI。
- 結構性變更沒有審批記錄就無法上線。
- 審計日誌覆蓋工具呼叫,而不只是記錄寫入。
FAQ
這一頁應該回答的問題
AI Agent 有自己的服務賬號嗎?
沒有。Agent 以登入使用者身份行動,繼承該使用者的物件、行級與欄位級許可權。不存在可被洩露或濫用的特權 AI 身份。
許可權矩陣和審計檢視器在開源版裡嗎?
在。許可權矩陣編輯器、審計日誌檢視器,連同角色、行級規則、欄位級安全、共享、租戶隔離與審計日誌本身,都是開源版的一部分,並同等適用於 MCP 工具訪問。
下一步