權限系統怎麼設計提示詞(RBAC 角色權限表結構、選單與按鈕權限、數據權限)

做管理後台、SaaS 或內部系統需要設計權限模組時用:讓 AI 根據組織結構和權限需求設計 RBAC 模型,覆蓋功能權限(選單、按鈕、接口)和數據權限(只能看本部門、只能看自己的),給出表結構、鑑權流程和常見越權漏洞的檢查清單。

NNathaniel bigo··原創首發·AI 輔助撰寫
通用大模型 對話模型通用
你是一名做過多個企業級後台權限系統的架構師。請幫我設計權限模組。

需求:
- 系統類型:[如內部運營後台、多租戶 SaaS]
- 組織結構:[如公司、部門、小組三級;有沒有多租戶]
- 角色舉例:[如超級管理員、部門經理、客服、財務]
- 需要控制的功能:[如選單可見、按鈕可點、接口可調用]
- 數據範圍的要求:[數據範圍的要求](例:客服只能看自己負責的客戶、經理能看本部門及下級)
- 特殊需求:[如臨時授權、權限審批、操作審計]
- 技術棧:[技術棧](例:Spring Boot + MySQL + Vue)

請輸出:
1. 模型選擇:基礎 RBAC 是否夠用;什麼情況下需要角色繼承、用戶組、基於屬性的規則(ABAC)作為補充;不要為了「完整」引入用不到的複雜度。
2. 功能權限設計:權限點的粒度與命名規則(如「模組:資源:操作」),選單、按鈕、接口三類權限如何對應;前端只負責顯示隱藏,真正的攔截必須在後端。
3. 數據權限設計:數據範圍的幾種類型(全部、本部門、本部門及下級、僅本人、自定義),如何在查詢中統一注入過濾條件,而不是在每個接口裏手寫。
4. 表結構:建表語句,包括用戶、角色、權限、用戶角色關聯、角色權限關聯、數據範圍配置;多租戶時每張表如何隔離。
5. 鑑權流程:一次請求從認證到功能鑑權、數據過濾的完整流程;權限緩存在哪裏、修改權限後如何及時生效。
6. 管理功能:角色的增刪改、權限分配介面的交互建議、防止管理員把自己鎖在門外。
7. 安全檢查清單:水平越權(改 URL 裏的 ID 訪問別人的數據)、垂直越權(普通用戶調用管理員接口)、批量接口和導出接口的數據範圍、權限修改本身的審計日誌。

每個設計決定附一句理由。

高亮處換成你自己的內容:[如內部運營後台、多租戶 SaaS]、[如公司、部門、小組三級;有沒有多租戶]、[如超級管理員、部門經理、客服、財務]、[如選單可見、按鈕可點、接口可調用]、[數據範圍的要求]、[如臨時授權、權限審批、操作審計]、[技術棧]

ChatGPT Plus 充值

已被複製 0 次

使用說明

怎麼填變量:[數據範圍的要求] 是權限系統裏最容易被低估的部分。功能權限(能不能點這個按鈕)大家都會想到,但「能看到哪些數據」往往到開發後期才發現需要,到時候每個查詢都要返工。

常見坑:

  • 只在前端隱藏按鈕,後端接口不做校驗。任何人用接口調試工具都能直接調用。
  • 數據權限在每個接口裏手寫過濾條件,總會有遺漏,尤其是導出、統計、批量操作這些「非主流程」接口。
  • 權限放在登入令牌裏且有效期很長,管理員撤銷了某人的權限,對方在令牌過期前仍能操作。

追問技巧:設計完成後追問「列出 10 個具體的越權測試用例(包括導出接口和批量接口)」,交給測試同學執行。也可以追問「如果以後要支持某個用戶臨時代理另一個人的權限,現有設計要怎麼擴展」。

示例輸出

示例,僅供參考(節選)

權限點命名:customer:list:view、customer:detail:edit、order:refund:approve

sql
CREATE TABLE role_data_scope (
  role_id     BIGINT NOT NULL,
  resource    VARCHAR(64) NOT NULL,   -- 如 customer
  scope_type  VARCHAR(32) NOT NULL,   -- ALL / DEPT / DEPT_AND_CHILDREN / SELF / CUSTOM
  PRIMARY KEY (role_id, resource)
);
角色客戶數據範圍說明
客服SELF只看負責人是自己的客戶
部門經理DEPT_AND_CHILDREN通過部門路徑字段做前綴匹配查詢
財務ALL(只讀)沒有編輯權限點

數據過濾:在數據訪問層統一攔截查詢,根據當前用戶角色的 scope_type 拼接過濾條件;導出接口複用同一套邏輯。

同款作品

用這條提示詞做出來的作品;原作者會因此獲得積分

做同款

還沒有同款,來做第一個。

Nathaniel 的更多內容

同主題

同模型

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~