聊聊B端數(shù)據(jù)權(quán)限管理,特殊業(yè)務(wù)場景也能通用的設(shè)計
數(shù)據(jù)權(quán)限是B端產(chǎn)品經(jīng)理需要掌握的技能點之一,這篇文章,作者從數(shù)據(jù)權(quán)限的基礎(chǔ)概念開始講起,向我們介紹了數(shù)據(jù)權(quán)限管理模型、特殊業(yè)務(wù)場景的通用設(shè)計,文末還提供一種特殊的權(quán)限設(shè)計思路,我們一起來看下吧。
上一篇分享了功能權(quán)限設(shè)計,這一篇詳細分享數(shù)據(jù)權(quán)限架構(gòu)。文末會提供一種特殊的權(quán)限設(shè)計思路,一定要看到最后哦!
一、數(shù)據(jù)權(quán)限基礎(chǔ)概念
1、數(shù)據(jù)權(quán)限
數(shù)據(jù)權(quán)限管理:定義登錄用戶可以查看哪些數(shù)據(jù)記錄。即:定義用戶登錄系統(tǒng)之后,可以查看哪些客戶、哪些訂單、哪些產(chǎn)品等數(shù)據(jù)記錄。
2、對象級數(shù)據(jù)權(quán)限
對象級數(shù)據(jù)權(quán)限包括:對于功能對象數(shù)據(jù)的增、刪、改、查四類操作:
- 查:用戶允許查看數(shù)據(jù);
- 增:用戶允許創(chuàng)建數(shù)據(jù);
- 刪:用戶允許查看并刪除數(shù)據(jù);
- 改:用戶允許查看并修改數(shù)據(jù)。
注:增、刪、改這三類權(quán)限,通常在功能權(quán)限控制中也可以通過按鈕是否可以使用來進行控制,但對象的數(shù)據(jù)權(quán)限定義時,也會對這個對象是否允許增、刪、改進行限制。數(shù)據(jù)權(quán)限定義到對象層,是更底層的權(quán)限限制,如果對象數(shù)據(jù)限制不允許創(chuàng)建,即使開放創(chuàng)建按鈕也無法新建。
二、數(shù)據(jù)權(quán)限管理模型
1、基礎(chǔ)權(quán)限模型
- 全部數(shù)據(jù)安全性:允許用戶查看系統(tǒng)所有數(shù)據(jù)。一般授予系統(tǒng)管理員、企業(yè)高層(如:CEO、CFO等)
- 本部門及下級部門數(shù)據(jù)安全性:允許用戶查看當(dāng)前部門及下級部門的所有數(shù)據(jù),默認是按數(shù)據(jù)創(chuàng)建人歸屬的部門進行查看,即:查看數(shù)據(jù)創(chuàng)建人的部門為登錄用戶的部門或者下級部門的數(shù)據(jù)。一般授予部門負責(zé)人
- 本部門數(shù)據(jù)安全性:允許用戶查看當(dāng)前部門的所有數(shù)據(jù),默認是按數(shù)據(jù)創(chuàng)建人歸屬的部門進行查看,即:查看數(shù)據(jù)創(chuàng)建人的部門為登錄用戶的部門的數(shù)據(jù)。一般授予部門負責(zé)人
- 本人及下級數(shù)據(jù)安全性:允許用戶查看本人及下屬員工的所有數(shù)據(jù),默認是按數(shù)據(jù)創(chuàng)建人進行查看,即:查看數(shù)據(jù)的創(chuàng)建人為當(dāng)前用戶或者下屬員工的數(shù)據(jù)。一般授予部門負責(zé)人、小組組長等
- 本人數(shù)據(jù)安全性:允許用戶查看本人的所有數(shù)據(jù),默認是按數(shù)據(jù)創(chuàng)建人進行查看,即:查看數(shù)據(jù)的創(chuàng)建人為當(dāng)前用戶的數(shù)據(jù)。一般授予普通業(yè)務(wù)人員
權(quán)限管理基礎(chǔ)模型可支持較為簡單的一些業(yè)務(wù)場景,如:客戶管理中,銷售業(yè)務(wù)員僅查看自己創(chuàng)建的客戶,銷售總監(jiān)可以查看銷售部的所有客戶,CEO可以查看企業(yè)所有客戶。
2、基于數(shù)據(jù)歸屬人的權(quán)限模型
在實際業(yè)務(wù)中,稍微復(fù)雜一些的場景,基礎(chǔ)權(quán)限模型就已經(jīng)遠遠無法滿足業(yè)務(wù)需求了。
以一個實際場景來說明:企業(yè)希望通過撥打400熱線電話做售前咨詢的客戶,分配給到銷售人員進行做跟進成交。由客服人員在CRM系統(tǒng)中為客戶建檔,然后分配給到銷售業(yè)務(wù)員跟進。
在這個場景中,客戶的創(chuàng)建人為客服人員,基礎(chǔ)權(quán)限模型可以滿足每個客服只能查看自己創(chuàng)建的客戶。但是,對于銷售人員而言,這部分客戶都不是自己創(chuàng)建的,也就沒辦法查看到這部分客戶,無法開展工作。
那么在這種情況下,我們就需要重新來定義數(shù)據(jù)歸屬,什么是“我的數(shù)據(jù)”。通常情況下,數(shù)據(jù)的創(chuàng)建人會默認認為是數(shù)據(jù)的歸屬人。但是,由于業(yè)務(wù)的需要,數(shù)據(jù)記錄會在不同的用戶之間進行數(shù)據(jù)的轉(zhuǎn)移操作,也就是說:在這種情況下,數(shù)據(jù)的創(chuàng)建人并不一定是數(shù)據(jù)的歸屬人。
那么在上訴的場景中,客戶數(shù)據(jù)的歸屬人,在數(shù)據(jù)創(chuàng)建時,歸屬人為客服人員。當(dāng)客服人員將客戶分配給到銷售業(yè)務(wù)員時,銷售業(yè)務(wù)員成了數(shù)據(jù)的歸屬人。在基礎(chǔ)的權(quán)限模型中,將原本通過創(chuàng)建人/創(chuàng)建人所屬部門為基礎(chǔ)的權(quán)限優(yōu)化成通過歸屬人及歸屬部門為基礎(chǔ)的權(quán)限,就可以解決銷售人員無法查看到客服創(chuàng)建的客戶數(shù)據(jù)了。
3、基于角色自定義歸屬的權(quán)限模型
在企業(yè)復(fù)雜的業(yè)務(wù)場景中,【基于數(shù)據(jù)歸屬人的權(quán)限模型】同樣沒辦法滿足較為復(fù)雜的業(yè)務(wù)需求。將【2】中的實際場景再做延伸進行說明:
客戶分配給到銷售業(yè)務(wù)員進行跟進后,在跟進過程中,如果需要報價給到客戶時,銷售業(yè)務(wù)員需要加入報價專員負責(zé)報價。
在這個場景中,數(shù)據(jù)歸屬人為銷售業(yè)務(wù)員,報價專員也需要加入進來,能夠查看到客戶,為客戶進行報價。但是在這個過程中,銷售業(yè)務(wù)員仍然需要跟進客戶,數(shù)據(jù)歸屬人沒辦法直接轉(zhuǎn)移給到銷售業(yè)務(wù)員。
那么在這種場景下,我們又需要重新來定義數(shù)據(jù)的歸屬,“什么是我的數(shù)據(jù)”。
- 對于客服人員而言,創(chuàng)建人為自己的是我的數(shù)據(jù);
- 對于銷售業(yè)務(wù)員而言,銷售業(yè)務(wù)員為自己的是我的數(shù)據(jù);
- 對于報價專員而言,報價專員為自己的是我的數(shù)據(jù)。
也就是說,對于不同角色的用戶而言,“我的數(shù)據(jù)”的定義是不同的。那么就需要能夠給不同角色去定義“什么是我的數(shù)據(jù)”的能力。
那么,在進行權(quán)限配置時,支持用戶在定義角色的同時,還需要支持用戶定義“我的數(shù)據(jù)”。如下圖:
在配置不同功能模塊的數(shù)據(jù)權(quán)限時,除了定義權(quán)限類型(本人可見、本部門可見等),還可以支持用戶自定義配置權(quán)限字段,以滿足不同角色可以查看到不同的“我的數(shù)據(jù)”。
如:
- 客服人員根據(jù)“創(chuàng)建人”字段查看我的數(shù)據(jù);
- 銷售業(yè)務(wù)員根據(jù)“銷售員”字段查看我的數(shù)據(jù);
- 報價專員根據(jù)“報價員”字段查看我的數(shù)據(jù)。
三、特殊業(yè)務(wù)場景的通用設(shè)計
1、權(quán)限覆蓋
在實際業(yè)務(wù)場景中,當(dāng)用戶訪問某一數(shù)據(jù)記錄時,該記錄關(guān)聯(lián)了其他的單據(jù),用戶需要同步查看關(guān)聯(lián)的這部分單據(jù)數(shù)據(jù)。
如:CRM系統(tǒng)中的客戶數(shù)據(jù),客戶同時關(guān)聯(lián)了聯(lián)系人數(shù)據(jù)、訂單數(shù)據(jù)、合同數(shù)據(jù)等。當(dāng)用戶查看客戶A時,需要查看到A客戶的所有聯(lián)系人、訂單、合同數(shù)據(jù)。但是由于客戶A可能有多個銷售同時跟進,該客戶的聯(lián)系人、訂單、合同信息并非都是由該用戶創(chuàng)建,單一的數(shù)據(jù)權(quán)限便無法滿足該業(yè)務(wù)場景。
那么,當(dāng)用戶操作訪問客戶A的權(quán)限時,他需要同步可以獲取到訪問A關(guān)聯(lián)的業(yè)務(wù)單據(jù)對象數(shù)據(jù)的權(quán)限。即:擁有客戶對象數(shù)據(jù)的訪問權(quán)限時,需要覆蓋客戶相關(guān)聯(lián)對象原本的數(shù)據(jù)權(quán)限。
2、團隊成員
在實際業(yè)務(wù)中,對于某一記錄,需要將數(shù)據(jù)共享給到多個用戶共同訪問、編輯。如:對于商機的跟進,需要不同角色的人員參與,需要銷售人員負責(zé)維護客戶、顧問負責(zé)方案制定、實施人員進行可行性評估、報價專員制作報價、投標(biāo)人員負責(zé)投標(biāo)資料整理等。對于不同的商機,不同角色對應(yīng)的業(yè)務(wù)員均不一樣,需靈活指派員工進行負責(zé)。
那么,在這種場景下需要有個群組的概念,將這部分人員組成一個群組對數(shù)據(jù)記錄負責(zé),并且共享相關(guān)內(nèi)容,這個群組即是團隊成員的概念。由數(shù)據(jù)的負責(zé)人進行組建,可將相關(guān)用戶加入團隊成員中,共享指定的數(shù)據(jù)記錄。
3、共享規(guī)則
團隊成員適用于靈活組建數(shù)據(jù)負責(zé)群組的場景,不同的數(shù)據(jù)記錄可組建不同的團隊。那在實際業(yè)務(wù)中,會存在一些相對固定的數(shù)據(jù)共享的場景。
如:公司派遣一名導(dǎo)師去到不同的門店進行指導(dǎo)。當(dāng)培訓(xùn)導(dǎo)師去門店進行指導(dǎo)前,就需要將該門店的訂單數(shù)據(jù)共享給到導(dǎo)師。這種場景下,每個訂單去添加導(dǎo)師的訪問權(quán)限明顯是不現(xiàn)實,這就需要有批量共享的能力,將該門店的訂單打包共享給到培訓(xùn)導(dǎo)師。
那么,對于這種有固定規(guī)則的數(shù)據(jù)共享場景,可以將這些固定規(guī)則統(tǒng)一抽象,形成共享規(guī)則,更方便地完成數(shù)據(jù)共享。
4、崗位層級
一般的權(quán)限設(shè)計中,數(shù)據(jù)權(quán)限通常與人、組織進行綁定。但是通過人和組織進行綁定的方式,比較難解決一些特殊的業(yè)務(wù)場景,如:
- 企業(yè)的人員變動頻繁,人員的離職/入職需要完成大量的數(shù)據(jù)交接工作;
- 一人多崗的業(yè)務(wù)場景下,難以實現(xiàn)不同崗位的數(shù)據(jù)權(quán)限隔離,如:用戶不同崗位的上級領(lǐng)導(dǎo)查看對應(yīng)崗位的數(shù)據(jù)。
引入崗位,可以將數(shù)據(jù)與人解綁,通過崗位與數(shù)據(jù)進行關(guān)聯(lián)。員工離職的數(shù)據(jù)繼承,可以通過繼承崗位進行實現(xiàn);一個多崗的場景,用戶不同崗位的數(shù)據(jù)與各崗位關(guān)聯(lián),崗位的上級領(lǐng)導(dǎo)只能查看對應(yīng)崗位的數(shù)據(jù)。
那么,首先要在系統(tǒng)中建立崗位層級管理,崗位與組織架構(gòu)類似,也是自上而下的樹狀結(jié)構(gòu)。頂層為企業(yè)CEO,一層一層向下延展。
其次,在數(shù)據(jù)記錄中記錄數(shù)據(jù)關(guān)聯(lián)的用戶崗位,一人多崗的場景下,數(shù)據(jù)關(guān)聯(lián)的崗位可以由用戶手工選擇或者默認為當(dāng)前登錄的崗位等,可根據(jù)實際業(yè)務(wù)而定。
四、特別的權(quán)限設(shè)計架構(gòu) – 頁面級數(shù)據(jù)權(quán)限控制
目前,市面上大多數(shù)產(chǎn)品的數(shù)據(jù)權(quán)限均控制在對象層,在具體的功能對象上按角色設(shè)定數(shù)據(jù)權(quán)限。當(dāng)擁有該角色的用戶登錄系統(tǒng)后,在該對象的各個頁面均根據(jù)設(shè)置的數(shù)據(jù)安全性執(zhí)行數(shù)據(jù)查看。如:銷售人員角色的用戶設(shè)定了允許查看本人的客戶數(shù)據(jù)權(quán)限,那么客戶的各個頁面,銷售人員均查看自己創(chuàng)建的數(shù)據(jù)。
這種權(quán)限架構(gòu)下,有一些特殊的場景無法滿足,如:銷售人員查看客戶數(shù)據(jù)時只允許查看本人的客戶數(shù)據(jù)。
但是,銷售人員在做客戶報備時,需要根據(jù)提報的客戶數(shù)據(jù),在系統(tǒng)中與全部客戶數(shù)據(jù)進行查重,查看客戶是否已經(jīng)報備過。在這種場景下,對象級權(quán)限控制則無法滿足業(yè)務(wù),銷售人員因只允許查看本人的數(shù)據(jù),報備時也只能與本人的客戶數(shù)據(jù)進行查重。
這里分享一種特殊的權(quán)限設(shè)計架構(gòu),頁面級數(shù)據(jù)權(quán)限控制。注:這種權(quán)限設(shè)計架構(gòu)可以滿足大部分的業(yè)務(wù)場景,但是,整體權(quán)限架構(gòu)較為復(fù)雜,維護成本也相對較高,并不推薦所有的系統(tǒng)數(shù)據(jù)權(quán)限設(shè)計按這個模式設(shè)計,僅作為思維拓展。
首先,在對象層設(shè)定數(shù)據(jù)權(quán)限時,設(shè)定的是數(shù)據(jù)權(quán)限模板,如:本部門的數(shù)據(jù)安全性,設(shè)定按哪個部門(創(chuàng)建部門、歸屬部門、更新部門等)字段作為權(quán)限字段;本人的數(shù)據(jù)安全性,設(shè)定按哪個用戶(創(chuàng)建人、歸屬人、更新人等)字段作為權(quán)限字段。
其次,在頁面層按不同的角色可設(shè)定引用哪一個數(shù)據(jù)權(quán)限模板。如:對于銷售人員而言,客戶列表執(zhí)行本人的數(shù)據(jù)安全性,僅可以查看自己創(chuàng)建的客戶數(shù)據(jù);客戶報備頁面執(zhí)行全部數(shù)據(jù)安全性,銷售人員可根據(jù)客戶信息查詢系統(tǒng)所有客戶數(shù)據(jù)。
本文由 @茶話B端 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
作者你好,實際中遇到的場景,同個角色在不同菜單可查看的數(shù)據(jù)權(quán)限范圍不一樣,比如在銷售部簽訂合同生成訂單,后端交付在交付管理菜單可以查看到銷售部的數(shù)據(jù),但在其他菜單比如商機管理,是只允許查看本部門數(shù)據(jù),這種應(yīng)該怎么處理呢?
寫的非常好,學(xué)習(xí)到了!希望大佬多多更新!
抱拳~
第2.3章節(jié),基于“基于角色自定義歸屬的權(quán)限模型”,這里面可以用自定義字段來定義“我的數(shù)據(jù)”,我實際遇到的場景會比這個更復(fù)雜:
CRM和工單系統(tǒng)打通,此銷售需要看到自己客戶的工單。這時候在工單的主表內(nèi)是沒有“責(zé)任銷售”這個字段的,涉及到跨表關(guān)聯(lián)。
當(dāng)然也能將“責(zé)任銷售”字段加入到工單主表,但是后面在轉(zhuǎn)移客戶的時候,工單表內(nèi)的字段需要同步轉(zhuǎn)移。
這就有2個方案:關(guān)聯(lián)字段時支持跨表關(guān)聯(lián);直接將“責(zé)任銷售”字段加入目標(biāo)主表。各有利弊,業(yè)務(wù)簡單字段較少可以用方法2,業(yè)務(wù)復(fù)雜,主表字段已經(jīng)很多了,可以用方法1。
不應(yīng)該是定義工單和銷售員之間的關(guān)系,更多時候應(yīng)該是客戶和銷售員的關(guān)系。
一個銷售員負責(zé)哪些客戶,那么這些客戶的工單他就可以看到。
這種方式去定義的話,就能比較好地解決銷售員離職集成、客戶轉(zhuǎn)移的問題。
類似CRM里面的“人-區(qū)-客”的概念
內(nèi)容太棒了,從2.2章節(jié)開始,描述了多種復(fù)雜權(quán)限的設(shè)計方法,解決了我的疑惑,厲害。
PS:其他的文章的內(nèi)容基本都是很淺顯、簡單的權(quán)限介紹,并沒有介紹復(fù)雜場景。