同等權限下多任職之間數據權限的實例
編輯導語:同等權限下多任職之間的數據權限應該如何解決呢?本文作者提出了兩種解決方法,并且介紹了權限系統、權限分類和角色管理,希望看后能夠對你有所啟發。
有兩種解決方案:
第一種實現難度低,不用跟組織架構掛鉤,相對簡單,但是只適用于小公司團隊;第二種與組織架構相關,相對復雜。
- 第一種:將數據權限與功能權限區分開并與角色關聯,數據權限可以將不同模塊的數據拆分成不同層級顆粒大小的數據集,與功能權限一樣,進行勾選選擇即可;
- 第二種:是通過組織架構的部門界定部門從屬關系,通過崗位界定人員從屬關系【關系到數據范圍】,比如員工在A、B兩個公司任職不同的崗位和角色,通過角色將組織信息帶出,然后選擇數據范圍和功能權限,切換組織可以解決不同組織同角色,同權限不同數據范圍的問題;
一、權限系統
當使用RBAC(Role Based Access Control)模型進行權限管理,相關概念包括權限,角色和用戶。
角色與權限綁定,即用戶的權限與其被賦予的角色相關。一個用戶可以擁有多個角色,一個角色也可以被添加給多個用戶,每個角色可以被賦予多個權限。
以下圖所示的結構為例:用戶1只擁有角色1的權限,即對資源1進行操作1;而由于用戶3擁有3個角色全部的權限,因此該用戶可以對資源1和資源2分別進行操作1和操作2。
角色與權限綁定唯一例外是當用戶為某資源的創建者時,其對此資源的權限與該用戶綁定,與角色無關。
例如:用戶1擁有角色1,權限為可對資源1進行操作1與2,若該用戶創建了資源2則擁有了對該資源的權限,而角色1并沒有權限對資源2進行操作。
除非在權限管理中進行修改, 用戶最終的權限為其所有擁有角色權限與資源創建者權限的并集。
二、權限分類
權限可分為資源權限、操作權限和數據權限三類,可通過角色管理實現對資源權限和操作權限的分配與管理,數據權限則由數據行級權限管理實現。
- 資源權限:資源包括菜單級別的權限,如訂單列表、收付款單表、庫存管理表等;
- 操作權限:操作權限包括對訂單數據的新增、編輯、查看、刪除等,對統計報表的新增、編輯、復制、查看、導出;
- 數據權限:數據權限即行級權限控制,在同一個菜單列表中,數據權限不同的用戶能夠看到的數據也不一樣,例如:小明只能看到小明自己的訂單數據,東北地區的用戶只能看到東北數據。
三、角色管理
例如可以將角色分成三類:
1. 系統角色
系統角色由系統給出,只存放于根目錄。
系統角色包括:系統管理員、二級管理員、業務員、跟單員、經理、美妝等,各角色的權限如下表所示的進行設置。
2. 系統管理員將用戶賦予二級管理員
1)方法一
在用戶管理頁面,添加用戶、編輯用戶的操作中,賦予二級管理員,此時也可將一級角色美妝同時賦予。
2)方法二
在二級管理員界面,直接添加用戶。
二級管理員的項目中心中可創建角色,添加用戶和賦予操作權限。
3. 數據權限管理
支持對角色設置數據訪問權限,權限控制粒度可達到行和列級別。接下來將通過具體的示例來介紹如何設置行級權限及列級權限。
3.1 數據行級權限
當我們希望業務經理只能看到“銷售退款”地區的數據,我們可以建立一個“數據行級權限”,然后設置數據訪問權限,只允許該角色成員訪問“銷售退款”付款項目的數據,然后將該“數據行級權限”賦予該業務經理即可。
下面我們將分步驟介紹設計與操作方法,將付款單表的數據添加行數據展示權限:
1)創建一個“數據權限”;
2)在行權限設置界面,選擇需要設置訪問權限的數據連接進行設置;
3)選擇“添加列表篩選”,添加一個篩選條件(付款項目字段為“銷售退款”);
4)將該“數據行級權限”賦予特定的業務人員,則他們在訪問相關數據表時,只會看到“銷售退款”付款單的數據。
當我們的數據篩選條件比較復雜,涉及多個層級的篩選時(比如要篩選“銷售退款”付款項目跟“江蘇易棉電子商務有限公司”單位的數據),這時候可以使用樹狀篩選來實現。
3.2 樹狀篩選
1)我們可以選擇“添加樹狀篩選”來添加一個篩選條件
2)選擇需要設置篩選條件的表(sheet1付款單表),并勾選需要設置篩選條件的字段(這里我們勾選“付款項目”跟“收款單位”);
3)選擇需要的數據項(這里我們勾選“銷售退款”跟“江蘇易棉電子有限公司”),確定后生成篩選條件;
4)添加相關的成員(業務人員),即該成員有此數據權限,只能查看該付款單表的相關數據
通過對所有相關數據表的行數據進行權限分配設定,權限控制粒度可達到行和列級別,能滿足大部分情況下的權限控制,可以精確到某一類角色,某一特定用戶等。
本文由@山人小道 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
請問作者,文中哪部分內容描述指的是數據列的權限設置,我有點懵了/(ㄒoㄒ)/~~
作者可以分享一下原型的鏈接嗎
如果能舉例說說前面的兩種解決方案就更好了