權(quán)限設計=功能權(quán)限+數(shù)據(jù)權(quán)限

54 評論 91376 瀏覽 458 收藏 10 分鐘

很多企業(yè)管理的中使用的軟件,基本上都離不開“權(quán)限管理”。有的朋友對權(quán)限管理理解的很透徹,有些朋友對一些概念模糊不清。這里總結(jié)了一些常見的誤區(qū),可供大家參考。

1. “普通用戶有刪除功能嗎”

權(quán)限實際上是功能權(quán)限和數(shù)據(jù)權(quán)限的組合,像“刪除”操作是一個功能操作權(quán)限,需要把“刪除”賦予給某個用戶,該用戶才能有這個操作權(quán)限。如這樣一個場景:企業(yè)IT管理員為系統(tǒng)定義角色,給用戶分配角色。

給新員工陳穎賦予“業(yè)務經(jīng)理”角色,“業(yè)務經(jīng)理”具有“新增客戶單位”、“查詢客戶單位”、“修改客戶單位”權(quán)限。此時張穎能夠進入系統(tǒng),則可以進行這些操作。

2. “普通用戶能查看訂單數(shù)據(jù)嗎”

以上舉例,局限于功能訪問權(quán)限,還有一些數(shù)據(jù)權(quán)限的權(quán)限管理,如:陳穎是浙江區(qū)域的“業(yè)務經(jīng)理”,所以她只能夠查看本區(qū)域的客戶單位,而不能查看到其它地區(qū)的客戶單位。甚至考慮到業(yè)務經(jīng)理之間的競爭,系統(tǒng)可以控制更細粒度級別的數(shù)據(jù)權(quán)限,即普通業(yè)務經(jīng)理的角色只能看到自己維護的客戶單位,而不能查看其他人員的客戶單位。軟件系統(tǒng)的權(quán)限管理其實是與線下實際管理策略相對應的。

有些企業(yè)本身制定和實施了嚴格的規(guī)章制度,那么軟件系統(tǒng)的權(quán)限管理就可以幫助企業(yè)更好的貫徹制度的實行,提高整體的運行效率和數(shù)據(jù)的安全。相反有些企業(yè)實際線下沒有明確的經(jīng)營策略,存在著管理風險和員工之間的不正當競爭,寄希望于軟件系統(tǒng)的權(quán)限規(guī)范,但是實施過程中會有很多阻力。

3. “這不就是用戶管理系統(tǒng)嗎”

這是將用戶管理系統(tǒng)當做權(quán)限管理系統(tǒng),其實權(quán)限基本都是基于角色的,用戶分配了對應的角色后,則會擁有對應的權(quán)限。而用戶管理系統(tǒng),只是將用戶管理起來。

從控制力度來看,可以將權(quán)限管理分為兩大類:

  1. 功能級權(quán)限管理;
  2. 數(shù)據(jù)級權(quán)限管理。

從控制方向來看,也可以將權(quán)限管理分為兩大類:

  1. 從系統(tǒng)獲取數(shù)據(jù),比如查詢訂單、查詢客戶資料;
  2. 向系統(tǒng)提交數(shù)據(jù),比如刪除訂單、修改客戶資料。

“權(quán)限管理”是B端產(chǎn)品的基礎功能,B端產(chǎn)品經(jīng)理不可避免會遇到權(quán)限設計的相關(guān)問題,行業(yè)里已經(jīng)很成熟。雖然它不是核心業(yè)務功能,但卻牽一發(fā)而動全身,需要產(chǎn)品經(jīng)理根據(jù)具體業(yè)務使用場景來設計。

通常情況下我們所說的“權(quán)限”,包括“功能權(quán)限”和“數(shù)據(jù)權(quán)限”,“功能權(quán)限”指用戶登錄系統(tǒng)后能看到哪些模塊,操作哪些按鈕,企業(yè)中的由于用戶擁有不同的角色,分工職責不盡相同。

比如常見的CRM系統(tǒng),銷售人員和財務人員由于處理的業(yè)務不同,登錄系統(tǒng)后,看到的功能模塊也不盡相同;而同樣都是財務人員,因為職位等級不同,擁有的操作功能也可能不同。

尤其是針對刪除或者撤銷的功能權(quán)限的控制。比如“刪除”的操作,不會隨意提供給一個普通員工。而數(shù)據(jù)權(quán)限指的是用戶在某個模塊里能看到哪些范圍的數(shù)據(jù),比如A業(yè)務經(jīng)理只能看到自己的客戶數(shù)據(jù),但是A的業(yè)務總監(jiān)可以查看到各個區(qū)域業(yè)務員的客戶數(shù)據(jù),

4. 功能權(quán)限中按角色訪問控制設計

其基本思想是,對系統(tǒng)操作的各種權(quán)限不是直接授予具體的用戶,而是在用戶集合與權(quán)限集合之間建立一個角色集合,每一種角色對應一組相應的權(quán)限。

一旦用戶被分配了適當?shù)慕巧螅撚脩艟蛽碛写私巧乃胁僮鳈?quán)限。

這樣做的好處是,不必在每次創(chuàng)建用戶時都進行分配權(quán)限的操作,只要分配用戶相應的角色即可。而且角色的權(quán)限變更比用戶的權(quán)限變更要少得多,這樣將簡化用戶的權(quán)限管理,減少系統(tǒng)的開銷。一般情況下的角色權(quán)限時相對穩(wěn)定的,而用戶則因為時間的變化而需要獲取相關(guān)新的權(quán)限。

基礎模型:用戶與角色是多對多的關(guān)系。一個用戶可以擁有若干角色,一個角色也可以賦予若干用戶。但并不意味著角色之間的關(guān)系互斥與否。

在企業(yè)的后臺管理系統(tǒng)中,通常包含多種管理模塊,有針對供應商的模塊、客戶的模塊、財務人員的模塊、統(tǒng)計管理人員的模塊。為了避免內(nèi)部信息的交叉?zhèn)鞑ィ约安僮魅藛T可能存在的誤操作行為,我們就可以通過此種基于角色的訪問控制模型,為后臺的操作者設置多種角色,并為每個角色賦予不同的業(yè)務權(quán)限,精確到對應菜單模塊的控制,甚至是相應的按鈕權(quán)限。

這樣就可以讓銷售同事只能查閱和修改供應商管理模塊,無法查閱公司的財務信息。而財務同事也只能查閱和修改財務報表相關(guān)的管理模塊,無法查看公司的訂單匯總,不同崗位各司其職,互不干擾。

對于小型的企業(yè),當一個人既負責銷售部,又負責運營部時,就可以為其賦予銷售人員、運營人員兩個角色,這樣他就擁有這兩個角色的所有權(quán)限,即可以訪問這兩個模塊的內(nèi)容。但是公司規(guī)模越大,對每個崗位的權(quán)責要求也更為細致,角色之間可能會有相應的組合關(guān)系。有必要理清楚崗位,職務,職位,權(quán)限,角色。

毫無疑問:權(quán)限是這些概念中的最細粒度的一個東西,而角色是一組權(quán)限的集合。崗位是職位的同義詞,他們的側(cè)重點不同。

職務才是被大家忽略的一個概念:具體定義不是很清晰,但他是某一業(yè)務中某一角色應當承擔的責任或者說應該負責的事。

一個職位一般來說有多個職務,比如說我們的經(jīng)理助理這么一個“職位”可能要負責的事情可能有很多類,如:協(xié)助安排經(jīng)理的日程,對下面呈上來的某類報告做初步審理等等一條條。這些被我們認為梳理出來的一條條的東西就是職務 – 他在當前職位上需要擔負的義務。

大家初期容易將崗位抽象成一個角色,但是最終發(fā)現(xiàn)這個角色可能粒度太粗或者是不宜重用,這個時候就應該梳理一下每個職位的職務,以職務為單位抽象成角色,這樣才能制定出更細粒的角色。

當然職位由于他是我們看的見摸得著的,所以直接將職位映射成角色是非常簡單清晰沒有異議的,而職務就不同了,他需要產(chǎn)品人員深入理解客戶的業(yè)務,這樣才能根據(jù)客戶的業(yè)務情況梳理出一個業(yè)務職務體系,這個過程必然會很辛苦。

5. 關(guān)于功能權(quán)限設計的幾點Tips

  1. 如果項目初期不需要權(quán)限管理,一定記得提醒開發(fā)同學,預留相關(guān)接口。
  2. 功能權(quán)限設計,也包括頁面權(quán)限和接口權(quán)限,這一點沒有經(jīng)驗的產(chǎn)品同學可能注意不到,需要保證沒有該模塊功能權(quán)限的用戶直接輸入頁面地址或調(diào)用接口時,也無法訪問。
  3. 一個頁面完成一件事,避免頁面交互方式太復雜,無法劃分功能權(quán)限。
  4. 功能權(quán)限與數(shù)據(jù)權(quán)限有時可以通過模塊進行轉(zhuǎn)換。

 

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 最重點的數(shù)據(jù)權(quán)限劃分,如何應用好職位、職務、和角色字段沒說??

    來自中國 回復
  2. 舉個例子說明功能權(quán)限和數(shù)據(jù)權(quán)限的區(qū)別:
    1. 功能權(quán)限:A和B都是銷售主管,所以他們的功能權(quán)限完全一樣,例如都可以訪問CRM系統(tǒng),錄入線索,簽約客戶,并查看客戶的訂單;
    2. 數(shù)據(jù)權(quán)限:A和B都是銷售主管,但A屬于華東區(qū),B屬于華北區(qū),所以其雖然功能權(quán)限一樣,但數(shù)據(jù)權(quán)限不一樣,A只能查看華東區(qū)的數(shù)據(jù),B只能查看華北區(qū)的數(shù)據(jù)。
    功能權(quán)限是一個系統(tǒng)橫向功能上的訪問控制,使用RBAC模型即可;數(shù)據(jù)權(quán)限是一個系統(tǒng)縱向同類業(yè)務數(shù)據(jù)的訪問控制,需要同時關(guān)注組織架構(gòu)&RBAC。

    來自浙江 回復
  3. 請問下數(shù)據(jù)權(quán)限怎么做的呀?

    來自陜西 回復
    1. 數(shù)據(jù)權(quán)限需要結(jié)合功能權(quán)限以及組織架構(gòu),例如A銷售擁有“銷售”這個角色的所有權(quán)限,但數(shù)據(jù)權(quán)限上,A只能查看屬于自己客戶的數(shù)據(jù),無法看到其他銷售的數(shù)據(jù)。B銷售擁有“銷售主管”的角色,他的功能權(quán)限和A基本是一樣的,但數(shù)據(jù)權(quán)限上,他可以看到本部門下所有銷售的數(shù)據(jù)。當然,B無法看到其他銷售部門的數(shù)據(jù)。

      來自浙江 回復
  4. 功能權(quán)限的設計相對簡單,RBAC模型就可以概括,但數(shù)據(jù)權(quán)限的設計好像沒有太多人關(guān)注,但工作中又必不可少

    來自黑龍江 回復
    1. 是的

      來自廣東 回復
  5. (@_@;)

    回復
  6. 有個問題想請教下
    一個關(guān)于RBAC模型的問題 RBAC模型是根據(jù)“角色”去判斷權(quán)限的 但實際業(yè)務場景有不同用戶是同一“角色” 但是不同權(quán)限點的情況 如果用創(chuàng)建多個“角色”來解決的話 覺得不太靈活 想到了改變這個模型 把權(quán)限直接和“用戶”掛鉤 而不是“角色” 但這個模型就變了 會不會用戶更難理解
    這個問題您有什么意見嗎

    來自北京 回復
    1. …..這無所謂啊,模型就是總結(jié)了一個方法給你用。 你覺得不適合你的業(yè)務,直接改了就行。 為什么要照抄呢,一般的用戶并不知道RBAC,變了就變了唄

      來自北京 回復
    2. 權(quán)限最開始就是 用戶-權(quán)限,后面人多了才有 角色 概念。
      可以搜下訪問控制模型 權(quán)限相關(guān)的 了解下 角色、組織架構(gòu)、崗位等等字段的出現(xiàn)跟企業(yè)的發(fā)展有怎樣關(guān)系。

      來自廣東 回復
    3. 個人認為,不同用戶是同一角色但職責又不同,原因是因為公司對崗位的理解和劃分不清晰,可以協(xié)助梳理崗位的職責以明確劃分,此外可以從產(chǎn)品角度,抽象兩個角色,根據(jù)不同的使用需求進行相關(guān)配置

      來自四川 回復
    4. 父子角色

      來自江蘇 回復
  7. 作者是否有實戰(zhàn)經(jīng)驗,能否將 權(quán)限大小、交叉、數(shù)據(jù)隔離,以及最后的轉(zhuǎn)換模型 詳細分享下呢

    來自浙江 回復
  8. 您好,我想問一下權(quán)限在業(yè)務系統(tǒng)里還是單獨一個系統(tǒng)?

    來自北京 回復
    1. 看情況,如果是單體就在一個系統(tǒng),如果是微服務或sso等就抽取到一個系統(tǒng)

      來自江蘇 回復
    2. 我覺得看你做的大小吧,一般僅僅是一個模塊。

      來自廣東 回復
  9. 您好,想問一下,怎么設計跨企業(yè)的業(yè)務流程?單位之間不存在隸屬關(guān)系,但是業(yè)務上有交叉

    來自河南 回復
    1. 審批

      來自廣東 回復
  10. 您好,我想知道,權(quán)限設計應該在產(chǎn)品初成型的時候就做完整的梳理和設計,還是先做簡單權(quán)限區(qū)分,等產(chǎn)品相對成熟后再做更完善的權(quán)限設計?謝謝~

    回復
    1. 在設計的時候最好考慮未來一段時間的業(yè)務發(fā)展變化,基于這個變化來設計,不然權(quán)限體系很快就會落后,面臨調(diào)整或重構(gòu),我們的系統(tǒng)就是從上線到現(xiàn)在已經(jīng)調(diào)整過三次了。

      來自四川 回復
  11. 你好,還有個問題想問下,就是功能權(quán)限和數(shù)據(jù)權(quán)限的之間的關(guān)系,我認為既然是如果具有了對某個模塊的功能權(quán)限,那就必然獲得了對這個模塊的數(shù)據(jù)權(quán)限,畢竟是先要可見,才可以執(zhí)行相應的操作,可以這么理解嗎?

    來自廣東 回復
    1. 我的理解是功能都是基于數(shù)據(jù)的衍生品,有了數(shù)據(jù)才有相對應的功能,所以我也不是很明白數(shù)據(jù)權(quán)限和功能權(quán)限的關(guān)系

      來自四川 回復
    2. 應該這樣理解吧,有了功能權(quán)限肯定也是有數(shù)據(jù)權(quán)限,有了數(shù)據(jù)權(quán)限肯定也有功能權(quán)限,但是兩個角色都有某個功能權(quán)限,但他們兩個的數(shù)據(jù)權(quán)限不一定相同,數(shù)據(jù)權(quán)限的維度要低于功能權(quán)限

      來自浙江 回復
    3. 數(shù)據(jù)權(quán)限和功能權(quán)限應該是相互獨立的,權(quán)限是功能權(quán)限與數(shù)據(jù)權(quán)限交叉子集。有功能權(quán)限而無數(shù)據(jù)權(quán)限,無法操作該條數(shù)據(jù);無功能權(quán)限而有數(shù)據(jù)權(quán)限,則也無法操作。必須同時擁有功能權(quán)限和數(shù)據(jù)權(quán)限,才能操作數(shù)據(jù)。

      來自重慶 回復
    4. 你的描述應該是想知道功能權(quán)限與數(shù)據(jù)權(quán)限及操作權(quán)限之間的關(guān)系吧,可以概括為:功能權(quán)限優(yōu)于數(shù)據(jù)權(quán)限和操作權(quán)限:
      1、獲得數(shù)據(jù)權(quán)限和操作權(quán)限一定要獲得功能權(quán)限,舉個例子:你需要查看公司數(shù)據(jù)銷售數(shù)據(jù)(數(shù)據(jù)權(quán)限)及新增報表字段(操作權(quán)限),必須得先有數(shù)據(jù)報表頁面(功能權(quán)限);
      2、獲得功能權(quán)限不一定需要獲得數(shù)據(jù)權(quán)限和操作權(quán)限,舉個例子:你擁有數(shù)據(jù)報表功能,但你可以不展示數(shù)據(jù)(數(shù)據(jù)權(quán)限)和不進行操作(操作權(quán)限),這個依然是成立的;

      來自浙江 回復
    5. 具有了對某個模塊的功能權(quán)限,那就必然獲得了對這個模塊的數(shù)據(jù)權(quán)限,這句話對
      但是文中的數(shù)據(jù)權(quán)限主要是講,不同角色的數(shù)據(jù)權(quán)限

      例:部門經(jīng)理和區(qū)域總監(jiān)都有客戶管理中權(quán)限,但是對于數(shù)據(jù)范圍的要求是不同的

      部門經(jīng)理只能看到本部門及以下的客戶數(shù)據(jù)
      區(qū)域總監(jiān)則可以看到所有部門及以下的客戶數(shù)據(jù)

      來自廣東 回復
    6. “數(shù)據(jù)權(quán)限”這個名字很容易誤導人,應該稱作“數(shù)據(jù)范圍”,即這個角色擁有的數(shù)據(jù)查看范圍。而數(shù)據(jù)范圍同組織架構(gòu),以及該用戶在該組織中的角色、層級有關(guān)系。例如張三是華北區(qū)一個普通銷售,他的數(shù)據(jù)權(quán)限局限在自己的業(yè)務上,只能查看自己的客戶數(shù)據(jù)。但李四是華北區(qū)總,他除了可以查看自己的客戶數(shù)據(jù)外,還能查看華北區(qū)其他銷售的客戶數(shù)據(jù)。

      來自浙江 回復
  12. 這里邊還是沒有說出如何解決同等權(quán)限下多任職之間數(shù)據(jù)權(quán)限如何處理數(shù)據(jù)的問題

    來自廣東 回復
    1. 是的。。我也是想知道這個。。你要是知道了可以分享一下嗎 ?

      來自廣東 回復
    2. 有兩種解決方案,第一種實現(xiàn)難度低,不用跟組織架構(gòu)掛鉤,相對簡單,但是只適用于小公司團隊,第二種與組織架構(gòu)相關(guān),相對復雜;
      1、將數(shù)據(jù)權(quán)限與功能權(quán)限區(qū)分開并與角色關(guān)聯(lián),數(shù)據(jù)權(quán)限可以將不同模塊的數(shù)據(jù)拆分成不同層級顆粒大小的數(shù)據(jù)集,與功能權(quán)限一樣,進行勾選選擇即可;
      2、第二種是通過組織架構(gòu)的部門界定部門從屬關(guān)系,通過崗位界定人員從屬關(guān)系【關(guān)系到數(shù)據(jù)范圍】,比如員工在A\B兩個公司任職不同的崗位和角色,通過角色將組織信息帶出,然后選擇數(shù)據(jù)范圍和功能權(quán)限,切換組織可以解決不同組織同角色,同權(quán)限不同數(shù)據(jù)范圍的問題;
      當然以上是本人結(jié)合作者的思考,如果有更好的、更加簡單的方案可以說下。

      來自廣東 回復
    3. 能否加wx交流下,目前在思考的問題和遇到的問題,比上述情況更棘手

      來自廣東 回復
    4. 兩者也會都包括呢,既要劃分數(shù)據(jù)范圍,比如個人的基礎信息、實名信息,也要根據(jù)組織架構(gòu)來區(qū)分,比如員工都能看客戶基礎信息,但只能看自己部門的。

      來自廣東 回復
    5. 其實區(qū)分清楚什么是功能權(quán)限,什么是數(shù)據(jù)權(quán)限,那么就很好設計了

      1.查看客戶基礎信息,在設計上你可以把他歸納到【客戶管理】-【基礎信息】的功能權(quán)限上
      2.只能看自己部門的,這個是數(shù)據(jù)權(quán)限,一般我們可以把數(shù)據(jù)權(quán)限設計為:本角色信息、本部門信息、本部門及以下信息、全部信息

      數(shù)據(jù)權(quán)限并不是說頁面上的數(shù)據(jù),而是角色管理邊界

      來自廣東 回復
  13. 您好~您講的通俗易懂,基本都能看明白,但是最后的tips,第4點,可以詳細解釋下嗎,功能權(quán)限與數(shù)據(jù)權(quán)限有時可以通過模塊進行轉(zhuǎn)換,這個轉(zhuǎn)換是指什么意思呢?

    來自上海 回復
    1. 同問

      來自重慶 回復
    2. 我理解應該指的是通過功能權(quán)限取控制數(shù)據(jù)權(quán)限,例如CRM系統(tǒng)中的客戶可以分為我的客戶、單位客戶、公司客戶,在設計功能模塊時可以將其設置為三個tab,這個就可以通過控制功能權(quán)限的來控制數(shù)據(jù)權(quán)限了。反之同理。所以在設計功能時要考慮權(quán)限的控制。

      來自廣東 回復
  14. 學習啦,求問作者一個小問題,文中有提到功能權(quán)限中是基于角色的訪問控制設計權(quán)限,那數(shù)據(jù)權(quán)限中是不是就是其中提到的以職務為單位將角色粒度細化?

    來自德國 回復
    1. 不能這樣理解,數(shù)據(jù)權(quán)限側(cè)重的是數(shù)據(jù);以職務為單位抽象成角色,只是說可以制定出更細粒的角色而已

      來自浙江 回復
  15. 多研究下,ERP系統(tǒng),OA系統(tǒng)權(quán)限設計體系,在去其他輕量級產(chǎn)品,小菜一碟

    來自四川 回復
    1. 好的 謝謝指導,權(quán)限設計體系之于OA系統(tǒng)和ERP系統(tǒng)是關(guān)鍵與核心

      來自浙江 回復
    2. ERP的權(quán)限體系設計是最LOW的…已經(jīng)遠達不到現(xiàn)在的權(quán)限管理需求..

      來自四川 回復
    3. 去學習下,再來說你LOW,還是與時俱進其他廠商DE “LOW” 國內(nèi)前兩名-SAAS-CRM 廠商合作很深,不知道你家排幾名?

      來自四川 回復
    4. EBS、SAP、用友這幾家的ERP產(chǎn)品都用過,SALESFORCE的權(quán)限也研究過,都沒看到權(quán)限體系有什么特別的,不知道你說的先進在哪里,公司現(xiàn)在業(yè)務系統(tǒng)權(quán)限體系都是內(nèi)部自己設計的。

      來自四川 回復
    5. 建議你去看下用友子公司暢捷通t+產(chǎn)品,或原用友子公司致遠產(chǎn)品的權(quán)限體系,以及參數(shù)設置,工作流設置

      來自四川 回復
    6. T+產(chǎn)品權(quán)限體系好不好不好說,在用友工作幾年,權(quán)限方面沒見到亮眼的產(chǎn)品。致遠的產(chǎn)品倒是沒用過…

      來自四川 回復
    7. 自開產(chǎn)品,當然要設計自己特征,不存在哪個先進一說,權(quán)限體系大于小,復雜與簡單設計差異

      來自四川 回復
    8. 權(quán)限的先進性不但要滿足業(yè)務需要,還要有易用性和好的用戶體驗。

      來自四川 回復
    9. 你口口說先進,先進具體內(nèi)容?那些產(chǎn)品滿足你說的所謂先進性?

      來自四川 回復
    10. 舉個簡單的例子,某些ERP產(chǎn)品為了滿足業(yè)務權(quán)限管控需求,要在系統(tǒng)中設置幾百個角色,權(quán)限交叉像蜘蛛網(wǎng),花費大量的人力,你覺得這種先進么.

      來自云南 回復
    11. 英才:先進具體內(nèi)容?那些產(chǎn)品滿足你說的所謂先進性?

      來自四川 回復
    12. 倒數(shù)第二條和倒數(shù)第三條回復已經(jīng)描述得很清楚了哈~

      來自重慶 回復
    13. 對!我覺的因為角色顆粒度細化,而衍生出的幾百個角色,確實能滿足權(quán)限管控需求,但是太麻煩了,一點都不便利,可是我找了很多權(quán)限體系,看不到能很好地滿足這兩點的,自己又設計不出來,唉

      來自上海 回復
  16. github開源代碼 smartadmin

    來自四川 回復