權限管理是後台管理系統中常見的功能,通常分為功能權限和數據權限。功能權限控制用戶的操作,數據權限控制數據的顯示。功能權限比較常用,而數據權限就很少見了。
那如果要實現數據權限控制,該怎麼操作呢?
首先,我們要知道數據權限控制的本質是什麼。如前面所說,數據權限控制的是數據的顯示,而數據的顯示不外乎是行顯示和列顯示,所以數據權限控制,實質是對行和列的控制。
在關系型數據庫中,如MySQL中,行有WHERE子句控制,列由SELECT字段控制,所以,進一步分析,數據權限控制實質是對WHERE子句和SELECT字段進行控制。
如何控制WHERE子句和SELECT字段?
1、創建數據源
将每一種要控制的數據,設置成數據源,同時将數據源與數據表關聯。如下:
2、設置數據規則,将數據源與角色關聯起來,以達到不同的角色,看到不同的數據。
在前面的内容中,我們講到,對行的控制實質是對WHERE子句的控制,因此,在設置行規則時,我們需要獲取數據源關聯的數據表的所有字段及類型,然後根據字段的不同添加不同的規則,如下:
列控制與行控制有異曲同工之處,也需要獲取數據源關聯的數據表的所有字段,然後選擇要展示的字段,如下:
通過以上設置,一個數據規則就完成了,完成的數據規則,在數據庫中的形式,如下所示:
3、在需要進行數據權限控制的頁面,根據登錄用戶的角色和關聯數據表,查出數據規則,獲取WHERE子句的數據和SELECT字段,然後拼接成一個完整的查詢的SQL語句。
至此,數據權限的實現就完成了。當然,此實現隻是簡單的實現,如果想更加完善,體驗更好,可能就需要大家再發揮一下想象了。
本文由“編碼之道”原創,關注“編碼之道”,獲取更多知識
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!