[原創]全面的權限控制方法(功能權限+數據權限+特殊權限(行,列))

1、功能權限。比較容易實現。

如果以角色為權限控制核心的話,則應該建立一張以角色--功能(頁面、窗體)為基礎的權限關係表。

2、數據權限。無論從區域還是公司內部結構之關係,都可統一為一棵權限樹,而利用好這棵樹的關鍵是明確其最終葉子在哪裡:

例如:

(1)如果一張訂單屬於一個公司(門市),則門市為葉子(注意些情況不能歸到下單的人,因為廣州的門市賬號應該可以為北京的門市下單,因為客戶打電話到哪個門市下單為未知,總不能拒絕客戶下單請求,讓客戶多次打電話下單)

(2)如果一張單要具體到某個下單人,如主管查看員工下單業績,則要具體到某個下單帳號了。這時下單人則應該為葉子

如果以角色為權限控制核心的話,則應該建立一張以角色--葉子為基礎的權限關係表。

3、特殊的權限控制:

(1)具體到某數據行的權限控制

A:如果用戶非常多,應該建立一張權限關係表,對應:表名--數據行--角色。

B:如果用戶不多,則為一個字段來存放具有或不具有權限的角色ID

(2)具體到字段的權限控制,同樣要建立一張權限關係表,對應:表名--字段--角色。

原文地址:https://www.cnblogs.com/luoyaoquan/p/2037465.html