這一篇讓你徹底搞懂 SaaS 產(chǎn)品的數(shù)據(jù)權(quán)限設(shè)計!

8 評論 12490 瀏覽 98 收藏 12 分鐘

數(shù)據(jù)權(quán)限是SaaS產(chǎn)品必不可少的功能,明確權(quán)限管控的顆粒度,保障數(shù)據(jù)安全。本文作者對如何SaaS 產(chǎn)品的數(shù)據(jù)權(quán)限該如何設(shè)計展開了分析,希望對你有幫助。

最近正好在做數(shù)據(jù)權(quán)限這塊的產(chǎn)品設(shè)計,同時拆解完紛享銷客的 PaaS 平臺后,又受到了新的啟發(fā)。事實上,我發(fā)現(xiàn)不少 SaaS 的產(chǎn)品經(jīng)理都沒有接觸過數(shù)據(jù)權(quán)限這塊的產(chǎn)品設(shè)計 —— 通常,如果經(jīng)歷過從0-1的 SaaS 產(chǎn)品過程的話,就會知道數(shù)據(jù)權(quán)限是一開始就需要設(shè)計和開發(fā)的。

本篇就來和大家講講如何設(shè)計數(shù)據(jù)權(quán)限產(chǎn)品功能。

一、數(shù)據(jù)權(quán)限是什么?

我想如果面試的時候來問產(chǎn)品經(jīng)理這個問題,估計會得到很多不一樣的答案。簡單的回答可能就是“對系統(tǒng)的數(shù)據(jù)進行訪問控制”,而這相當(dāng)于沒有回答。

實際上,我認為要從三個方面回答這個問題。

  • 一是控制登錄人訪問的數(shù)據(jù)范圍,不該看的不能看;
  • 二是控制登錄人操作數(shù)據(jù)的行為,不該管的不能管;
  • 三是控制登錄人能夠查看的業(yè)務(wù)對象屬性,敏感的屬性要管控。

數(shù)據(jù)權(quán)限一是控制登錄人訪問的數(shù)據(jù)范圍,不該看的不能看;二是控制登錄人操作數(shù)據(jù)的行為,不該管的不能管;三是控制登錄人能夠查看的業(yè)務(wù)對象屬性,敏感的屬性要管控。

二、怎么控制數(shù)據(jù)權(quán)限?

我們來看看應(yīng)該怎么來控制登錄人的數(shù)據(jù)權(quán)限,這里可以分為數(shù)據(jù)范圍權(quán)限控制、數(shù)據(jù)操作權(quán)限控制和業(yè)務(wù)對象字段權(quán)限控制。

1. 數(shù)據(jù)范圍權(quán)限控制

B 端客戶內(nèi)部的業(yè)務(wù)對象通常來說會按管理層級劃分管轄范圍,比如我曾經(jīng)做過的物業(yè)平臺,他們會按小區(qū)(也叫物業(yè)項目)、片區(qū)、分公司、大區(qū)和總部五個層級來劃分管轄范圍。

這里的小區(qū)其實就是一個基礎(chǔ)的授權(quán)業(yè)務(wù)對象,然后將多個小區(qū)集合起來會形成片區(qū)。同時,經(jīng)營小區(qū)的會是具有法人資質(zhì)的主體,即分公司。多個分公司又會按地理區(qū)域劃分到不同的大區(qū),最后到總部管轄全部的業(yè)務(wù)數(shù)據(jù)。這個時候,我們就需要支持從基礎(chǔ)的業(yè)務(wù)對象到更大范圍的數(shù)據(jù)授權(quán)。

比如下面幾個場景:

  • A 小區(qū)的物業(yè)項目經(jīng)理授權(quán) A 小區(qū),他只能看到 A 小區(qū)的各類業(yè)務(wù)數(shù)據(jù)(報修、投訴、收費等等);
  • B 片區(qū)的物業(yè)片區(qū)經(jīng)理授權(quán) B 片區(qū),他能夠看到 B 片區(qū)下的全部小區(qū)的各類業(yè)務(wù)數(shù)據(jù),包括以后在 B 片區(qū)再新增的小區(qū)。
  • C 公司的物業(yè)分公司總經(jīng)理授權(quán) C公司,他能夠看到C 公司下的全部小區(qū)的各類業(yè)務(wù)數(shù)據(jù),包括以后在C 公司再新增的小區(qū)。
  • D 大區(qū)的物業(yè)大區(qū)經(jīng)理授權(quán)D大區(qū),他能夠看到D 大區(qū)下的全部小區(qū)的各類業(yè)務(wù)數(shù)據(jù),包括以后在 D大區(qū)下各個分公司新增的小區(qū)。
  • 總部的集團領(lǐng)導(dǎo)可以看到全部的小區(qū)各類業(yè)務(wù)數(shù)據(jù)。

通常來說,不同層級的授權(quán)方式是互斥的,也就是一個人不能說既按小區(qū)級別授權(quán)又按片區(qū)級別授權(quán)。同時,同一個層級的,是支持授權(quán)多個的。

對于 B 端客戶的外部業(yè)務(wù)對象,因為不存在管轄層級,往往是通過分配的方式進行。即將一個或多個業(yè)務(wù)對象分配給某類角色或某個員工,登錄人只能看到分配給自己的業(yè)務(wù)對象。典型的就是 CRM 系統(tǒng)的客戶公海資源,員工只能看到分配給自己的客戶。

2. 業(yè)務(wù)對象操作權(quán)限控制

業(yè)務(wù)對象操作權(quán)限是指對業(yè)務(wù)對象以及業(yè)務(wù)對象屬性能夠進行的操作。典型的業(yè)務(wù)對象的操作就是新增、刪除、編輯、查看、導(dǎo)出、改變業(yè)務(wù)對象狀態(tài)(如市場線索轉(zhuǎn)銷售線索)等等。比方說,我們控制 A 員工只能查看客戶信息,不能新增、編輯、刪除和導(dǎo)出客戶信息。

3. 業(yè)務(wù)對象字段權(quán)限控制

業(yè)務(wù)對象字段的顆粒度就更小一點,是針對某個類型的業(yè)務(wù)對象,約束登錄人能查看、編輯或?qū)С鰳I(yè)務(wù)對象的哪些屬性。業(yè)務(wù)對象屬性在技術(shù)上對應(yīng)的是數(shù)據(jù)表的字段。

舉個例子,CRM 系統(tǒng)的“客戶”這個業(yè)務(wù)對象,會有名稱、地址、電話、級別、所屬行業(yè)等等信息。我們就可以控制A 員工(或角色)只能查看客戶名稱、級別和所屬行業(yè),不允許查看地址和電話。

三、數(shù)據(jù)權(quán)限產(chǎn)品設(shè)計

接下來我們看數(shù)據(jù)權(quán)限的產(chǎn)品怎么設(shè)計。

1. 數(shù)據(jù)范圍權(quán)限設(shè)計

數(shù)據(jù)范圍權(quán)限控制首先我們要明確系統(tǒng)的基礎(chǔ)業(yè)務(wù)對象,比如物業(yè)平臺的小區(qū)、房地產(chǎn)管理的樓盤、WMS的倉庫、線下商超的門店等等,這些都可以作為基礎(chǔ)的授權(quán)業(yè)務(wù)對象。然后,基于基礎(chǔ)業(yè)務(wù)對象構(gòu)建管理層級,劃分到不同層級的不同集合里。之后,就可以授權(quán)某個角色或人員擁有的管轄范圍,下面是一個示例。

給業(yè)務(wù)對象分配成員的比較簡單,基于業(yè)務(wù)對象添加成員或者移除成員即可,在文檔協(xié)作類產(chǎn)品非常常見。

2. 業(yè)務(wù)對象操作權(quán)限設(shè)計

控制業(yè)務(wù)對象的操作權(quán)限,我們首先要基于某類業(yè)務(wù)對象定義好這類業(yè)務(wù)對象有哪些操作,然后再勾選某個角色或人員有能夠進行哪些操作。

業(yè)務(wù)對象的操作涉及如下信息:

  • 操作名稱:比如操作按鈕的名稱;
  • 操作標識:系統(tǒng)全局唯一的標識,前端可以通過這個標識來決定是否展示相應(yīng)的操作入口;
  • 顯示方式:即操作入口是隱藏還是禁用。隱藏是比較常見的操作,但是禁用的話可以讓登錄人知道他沒有這個權(quán)限,如果需要可以找他們內(nèi)部的管理員開通。
  • 對應(yīng)數(shù)據(jù)接口:即對應(yīng)操作的數(shù)據(jù)接口,這個是防止有人知道了數(shù)據(jù)接口,繞過操作按鈕直接訪問接口來獲得數(shù)據(jù),通過同時禁止數(shù)據(jù)接口的訪問權(quán)的安全等級會更高一些。

下面是紛享銷客的業(yè)務(wù)對象操作權(quán)限控制的界面,大家可以參考一下。

3. 字段操作權(quán)限設(shè)計

字段操作權(quán)限和業(yè)務(wù)對象操作權(quán)限類似,我們也需要先定義好業(yè)務(wù)對象的字段屬性,主要的信息如下:

  • 名稱:字段的顯示名稱,如姓名、手機號等都是字段的名稱;
  • 數(shù)據(jù)表字段名:對應(yīng)業(yè)務(wù)對象數(shù)據(jù)表的字段名,技術(shù)上需要通過這個字段名來控制字段的權(quán)限;
  • 顯示方式:即未授權(quán)該字段時該如何顯示,目前有兩種做法,一是直接隱藏;二是脫敏。直接隱藏比較簡單,但是可能會引起頁面布局不美觀;脫敏則是隱藏掉部分的內(nèi)容,比如手機號中間4位使用“*”號替代,這種方式的好處是頁面布局不需要改動,但需要開發(fā)做一定的處理。
  • 是否必選:有些字段是不能來控制權(quán)限的,比如客戶名稱,如果客戶名稱都不顯示了,那么這條數(shù)據(jù)都沒有意義了,因此需要定義業(yè)務(wù)對象的主要字段是必須勾選的,不可以禁止相應(yīng)的字段權(quán)限。

字段的操作一般只有讀取、編輯和導(dǎo)出,因此字段操作上不需要單獨管理。下面同樣給出了紛享銷客的字段授權(quán)的界面,供大家參考。

四、總結(jié)

總的來說,數(shù)據(jù)權(quán)限的授權(quán)分為三個方面,業(yè)務(wù)對象范圍授權(quán)、業(yè)務(wù)對象操作授權(quán)和業(yè)務(wù)對象字段授權(quán)。

為了實現(xiàn)這三個方式的授權(quán),我們在產(chǎn)品設(shè)計上需要支持業(yè)務(wù)對象范圍的劃分、業(yè)務(wù)對象操作的定義和業(yè)務(wù)對象字段的定義,如下圖所示。之后,我們就可以配置某個角色或人員的數(shù)據(jù)權(quán)限了。

數(shù)據(jù)權(quán)限是SaaS產(chǎn)品必不可少的功能。企業(yè)的數(shù)據(jù)很多涉及敏感信息,包括商業(yè)機密信息等等,因此必須在產(chǎn)品規(guī)劃之初就明確權(quán)限管控的顆粒度,以及按何種方式管理數(shù)據(jù)權(quán)限。希望看了本篇之后,能夠給大家一些參考和啟發(fā)。

專欄作家

產(chǎn)品海豚灣,公眾號:產(chǎn)品海豚灣(ID:pm-dophin-bay),人人都是產(chǎn)品經(jīng)理專欄作家。技術(shù)出身的產(chǎn)品經(jīng)理,從事過 C 端產(chǎn)品和 B 端產(chǎn)品設(shè)計,擅長 SaaS 產(chǎn)品設(shè)計、產(chǎn)品架構(gòu)設(shè)計和需求分析。負責(zé)的B 端產(chǎn)品完成了完整的從0到1,從1到 N 的過程,成功簽約行業(yè)百強客戶。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 請教個問題,如果同一個用戶在不同的資源下,操作權(quán)限不一致,如何設(shè)計?
    比如,第一個物業(yè)公司的權(quán)限管控案例,如果張三負責(zé)多個片區(qū)的管理,他是A片區(qū)的物業(yè)總經(jīng)理(操作權(quán)限較大),同時他也是B片區(qū)的樓棟管家(操作權(quán)限較小)。這種情況下,權(quán)限如何設(shè)計?

    來自湖北 回復(fù)
    1. 每個用戶有什么權(quán)限是根據(jù)這個用戶分配了什么角色決定的,想你說的這種;建兩個角色給這個用戶分配上就行了:1個角色是A區(qū)物業(yè)總經(jīng)理,一個是B片區(qū)管家

      來自北京 回復(fù)
    2. 角色控制的是操作權(quán)限,數(shù)據(jù)權(quán)限可不是通過角色控制的。

      來自四川 回復(fù)
    3. 請問這個場景您這邊是如何解決的?我們也遇到這個問題,同一個人在系統(tǒng)中有不同的崗位,且不同崗位的數(shù)據(jù)權(quán)限需要不同

      來自北京 回復(fù)
  2. 數(shù)據(jù)范圍產(chǎn)品設(shè)計可以講的更深入一些,這塊是核心。比如按照組織架構(gòu)、獨立分配,獨立分配又可以按照屬性(部門等等)過濾條件分配,這樣才能構(gòu)建一個比較貼近實際業(yè)務(wù)需要的數(shù)據(jù)權(quán)限。

    來自上海 回復(fù)
  3. 很棒!請教個問題,字段權(quán)限這個受菜單限制么,還是整個系統(tǒng)這個字段全部限制了?

    來自廣東 回復(fù)
    1. 這個應(yīng)該是每個菜單里的字段,其他菜單即使同名也是算另一個字段。有的會通過引用或關(guān)聯(lián)等方式將兩個菜單的字段連接起來,可能會讓你覺得是同一個字段

      來自四川 回復(fù)
    2. 一般人員都會有一個人員類型的字段,可以在角色的基礎(chǔ)上再通過這個人員類型字段去判斷字段權(quán)限。

      來自四川 回復(fù)