亚州天堂爱爱,做爱视频国产全过程在线观看,成人试看30分钟免费视频,女人无遮挡裸交性做爰视频网站

? ? ?

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

大家好:

常見的,在項(xiàng)目實(shí)際開發(fā)中我們不光要控制一個用戶能訪問哪些資源,還需要控制用戶只能訪問資源中的某部分?jǐn)?shù)據(jù)。這就是所謂的數(shù)據(jù)權(quán)限。典型的如列表數(shù)據(jù)權(quán)限,主要通過數(shù)據(jù)權(quán)限控制行數(shù)據(jù),讓不同的人有不同的查看數(shù)據(jù)規(guī)則。

行業(yè)背景

在互聯(lián)網(wǎng)系統(tǒng)中,權(quán)限一般分為功能權(quán)限和數(shù)據(jù)權(quán)限,功能權(quán)限比較常見,因?yàn)橥ㄓ眯院蛷?fù)用性,業(yè)內(nèi)有很多的通用框架和設(shè)計(jì)。但對應(yīng)數(shù)據(jù)權(quán)限來說,由于數(shù)據(jù)權(quán)限強(qiáng)依賴客戶組織架構(gòu)和具體業(yè)務(wù)的關(guān)系,往往實(shí)現(xiàn)起來會比較復(fù)雜,很少有一個設(shè)計(jì)架構(gòu)能完全覆蓋住,所以大部分的系統(tǒng)都一致性的遵循此策略:如非必要的盡量不使用數(shù)據(jù)權(quán)限,必須要的則單獨(dú)控制。

目前常見數(shù)據(jù)權(quán)限方案基本為硬編碼,具體分為如下兩種:一是拆分功能頁面,即根據(jù)不同數(shù)據(jù)權(quán)限用戶,通過復(fù)制拷貝的方式,增加多個類似的菜單,再通過功能權(quán)限配置來給不同用戶設(shè)置不同的菜單,從而實(shí)現(xiàn)數(shù)據(jù)權(quán)限的控制;二是在功能對應(yīng)的后端接口里做判斷,對不同數(shù)據(jù)權(quán)限的用戶,過濾不同的數(shù)據(jù)列表透出給用戶。硬編碼的方式顯而易見的優(yōu)點(diǎn)是技術(shù)難度低,實(shí)現(xiàn)簡單。

但以上硬編碼的方式,無論選擇用哪一種,都無法解決系統(tǒng)靈活性的問題,每當(dāng)系統(tǒng)有老的需求要變更或者新的需求要新增,對應(yīng)的開發(fā)人員就不得不去調(diào)整編碼,修改菜單和頁面,由此可見,硬編碼對開發(fā)的成本和運(yùn)維的成本都比較高。與此同時,行業(yè)內(nèi)常見的通用數(shù)據(jù)權(quán)限控制,大都是給單一業(yè)務(wù)使用,和業(yè)務(wù)耦合度較高,可能在當(dāng)前業(yè)務(wù)客戶端是通用可擴(kuò)展的,但是在另一個業(yè)務(wù)客戶端就無法做到無縫接入了。

因此,如何提高數(shù)據(jù)權(quán)限設(shè)置的靈活性,降低耦合性,是本領(lǐng)域技術(shù)人員需要解決的問題。

建設(shè)價(jià)值

首先來說一下,為什么我們要做這樣一個多系統(tǒng)的數(shù)據(jù)權(quán)限控制裝置?

大背景是我司當(dāng)前有多個業(yè)務(wù)系統(tǒng)需要通過數(shù)據(jù)權(quán)限控制業(yè)務(wù)數(shù)據(jù),它們的用戶體系或相同或不同,控制維度各有定制。

于是產(chǎn)生諸如以下需求:

  • 權(quán)限可配置化
  • 支持業(yè)務(wù)快速接入
  • 模型統(tǒng)一

為了支持以上需求,于是理所當(dāng)然的出現(xiàn)了如下一套多系統(tǒng)的通用數(shù)據(jù)權(quán)限控制系統(tǒng)。

系統(tǒng)介紹

本系統(tǒng)底層使用統(tǒng)一的一套模型,支持權(quán)限配置化,業(yè)務(wù)方可自定義權(quán)限維度,用戶體系解耦,滿足不同系統(tǒng)快速接入數(shù)據(jù)權(quán)限的業(yè)務(wù)場景。

數(shù)據(jù)權(quán)限

RBAC是經(jīng)典的功能權(quán)限模型,它是 Role-BasedAccess Control 的英文縮寫,意思是基于角色的訪問控制。

運(yùn)營事先會在系統(tǒng)中定義出各種不同的角色,不同的角色擁有不同的權(quán)限,一個角色實(shí)際上就是一組權(quán)限的集合。而系統(tǒng)的所有用戶都會被分配到不同的角色中,一個用戶可能擁有多個角色。使用這種模型可以極大地簡化權(quán)限的管理。

但是,在該模型下,系統(tǒng)只會驗(yàn)證用戶甲是否屬于角色A,而不會判斷用戶甲是否能訪問只屬于用戶乙的數(shù)據(jù) Data。這種問題我們稱之為“水平權(quán)限管理問題”。

所以,為了解決這個問題,我們基于 RBAC 模型下,又?jǐn)U展了功能和維度的概念,使系統(tǒng)能基于角色控制用戶的數(shù)據(jù)權(quán)限。如下:

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

同時,為了做到多系統(tǒng)通用,我們又對系統(tǒng)、功能、權(quán)限做了如下抽象:

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

模型把每個系統(tǒng)抽象成由一個個業(yè)務(wù)組成,業(yè)務(wù)下分解成多個功能,功能對應(yīng)多個維度:

  • 數(shù)據(jù)權(quán)限的顆粒度為到功能,一個功能可包含多個 Rest 接口。
  • 功能下分多個維度,所謂的數(shù)據(jù)權(quán)限實(shí)際就是控制每個維度,維度最終對應(yīng)的是每個功能業(yè)務(wù)數(shù)據(jù)的篩選字段。
  • 最終當(dāng)所有都配置完成后,每個角色對應(yīng)每個功能下就掛著多個數(shù)據(jù)規(guī)則。當(dāng)用戶訪問具體功能時,根據(jù)用戶角色的數(shù)據(jù)規(guī)則,返回對應(yīng)數(shù)據(jù)。
  • 當(dāng)固定值不滿足業(yè)務(wù)需求時,提供開放端口給業(yè)務(wù)方,業(yè)務(wù)方可實(shí)現(xiàn)對應(yīng)維度的選擇項(xiàng)端口,來達(dá)到自定義維度對應(yīng)值的目的。

數(shù)據(jù)規(guī)則

根據(jù)以上描述,顯而易見的,要實(shí)現(xiàn)數(shù)據(jù)權(quán)限,最重要的是需要抽象出數(shù)據(jù)規(guī)則。

比如我們營銷系統(tǒng)的訂單列表,需要從下面幾個維度來控制數(shù)據(jù)訪問權(quán)限。

銷售人員只能看自己的數(shù)據(jù);

a 部門的人只能看自己部門的數(shù)據(jù);

a 部門的上級部門 A 的人能看自己部門的數(shù)據(jù)和下級 b 部門的人;

上面的這些維度就是數(shù)據(jù)規(guī)則。

這樣數(shù)據(jù)規(guī)則的幾個重點(diǎn)要素我們也明晰了,就是規(guī)則字段,規(guī)則表達(dá)式,規(guī)則值,上面三個場景對應(yīng)的規(guī)則分別如下:

規(guī)則字段:創(chuàng)建人,規(guī)則表達(dá)式:= ,規(guī)則值:當(dāng)前登錄人

規(guī)則字段:所屬部門,規(guī)則表達(dá)式:= ,規(guī)則值:a

規(guī)則字段:所屬部門,規(guī)則表達(dá)式:in ,規(guī)則值:A,a

即數(shù)據(jù)規(guī)則由【維度 條件表達(dá)式 維度對應(yīng)值】組成,業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)權(quán)限就是由多個數(shù)據(jù)規(guī)則組成的范圍控制。具體模型如下:

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

接入流程

那么,本套多系統(tǒng)權(quán)限控制系統(tǒng),到底該如何接入呢?大致流程如下:

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

按照此通用方案,數(shù)據(jù)控制整體接入過程如下:

1.業(yè)務(wù)確定需要數(shù)據(jù)權(quán)限接入的功能。

2.產(chǎn)品、開發(fā)、業(yè)務(wù)確認(rèn)功能的維度。

3.運(yùn)營在開發(fā)的支持下在運(yùn)營管理端配置數(shù)據(jù)權(quán)限,包括支持的維度、表達(dá)式、固定值等等。如需自定義維度對應(yīng)值,實(shí)現(xiàn)對應(yīng)端口。

4.各系統(tǒng)管理員登錄各自的數(shù)據(jù)權(quán)限配置端,設(shè)置每個角色的數(shù)據(jù)規(guī)則。

5.客戶訪問系統(tǒng)的具體功能,根據(jù)客戶的角色,獲得數(shù)據(jù)規(guī)則,根據(jù)數(shù)據(jù)規(guī)則組裝業(yè)務(wù)數(shù)據(jù)返回。

接入案例-訂單列表

訂單是很常見的系統(tǒng)功能,當(dāng)前,需要對不同員工查看訂單的數(shù)據(jù)范圍做控制,根據(jù)員工所屬的部門不同,查看對應(yīng)部門的訂單列表。

步驟一:確定系統(tǒng)、功能、維度

系統(tǒng):xxx系統(tǒng) 功能:訂單列表 維度:部門

步驟二:管理端配置數(shù)據(jù)權(quán)限

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

步驟三:業(yè)務(wù)方接入 Sdk,實(shí)現(xiàn)自定義維度(部門)選擇項(xiàng)配置端口

示意代碼

/** * 獲取維度選擇項(xiàng) */List<DimensionOption> getDimensionOptionList(List<String> dimensionCodes);

步驟四: 對應(yīng)api查詢數(shù)據(jù)接口接入 Sdk,完成數(shù)據(jù)過濾

步驟五: 系統(tǒng)管理員配置角色數(shù)據(jù)權(quán)限

只要完成以上5步,就實(shí)現(xiàn)了接入數(shù)據(jù)權(quán)限的功能。整個流程只有接入 Sdk 的成本,1天內(nèi)即可完成,快速、高效,極大的降低了成本。同時公司內(nèi)所有系統(tǒng)都擁有了一套完整統(tǒng)一的權(quán)限控制系統(tǒng)。

Sdk 如何進(jìn)行數(shù)據(jù)權(quán)限控制

那么,底層究竟是如何實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的?

以下是一個請求的控制鏈路:

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

權(quán)限 Sdk 是真正實(shí)現(xiàn)權(quán)限控制的核心組件。

權(quán)限管理——多系統(tǒng)下的數(shù)據(jù)權(quán)限通用控制(多系統(tǒng)權(quán)限設(shè)計(jì))

Sdk 中的基石是一個個對外開放的端口,其中最底層的是上下文端口。接入方需實(shí)現(xiàn)這個端口接口,根據(jù)當(dāng)前緩存用戶封裝數(shù)據(jù)權(quán)限上下文。如有自定義維度,需實(shí)現(xiàn)自定義維度選擇項(xiàng)端口,返回業(yè)務(wù)自定義的維度選擇項(xiàng)。

數(shù)據(jù)權(quán)限生效實(shí)現(xiàn)過程如下:

1.請求 Path 被 Sdk 攔截,通過正則匹配配置的權(quán)限 Api,匹配到說明需要被控制。

2.在功能接口中,Sdk 根據(jù)上下文端口獲取當(dāng)前請求上下文,根據(jù)上下文獲取對應(yīng)用戶所有角色的數(shù)據(jù)權(quán)限。

3.根據(jù)數(shù)據(jù)權(quán)限設(shè)置的配置,組裝權(quán)限控制的條件。

4.業(yè)務(wù)方查詢時加上權(quán)限控制條件,得到的數(shù)據(jù),就是控制了數(shù)據(jù)權(quán)限后的數(shù)據(jù)。

ps:本sdk只針對java語言的后端

如果業(yè)務(wù)方使用的是 MyBatisXml 原生語句, Sdk 會把所有的數(shù)據(jù)權(quán)限組裝成對應(yīng)的 Sql 片段,自動對XML查詢注入該 Sql 片段;如果使用的是 MyBatis-plus 的 QueryWrapper 方式,Sdk 會把所有的數(shù)據(jù)權(quán)限自動注入到生成的 QueryWrapper 條件中。

業(yè)務(wù)方也可以自主使用權(quán)限控制配置查詢數(shù)據(jù),關(guān)閉 Sdk 的自動注入。

問題

  • 當(dāng)前只能直接對數(shù)據(jù)庫存在的字段進(jìn)行控制,如果是間接條件,無法控制數(shù)據(jù)權(quán)限
  • 自動注入當(dāng)前只支持 MyBatis 的 Xml 原生語句和 MyBatis-plus 的 QueryWrapper 方式,其他如 Jpa 等不支持

思考

還有更多的類似問題,都是多系統(tǒng)數(shù)據(jù)權(quán)限控制需要解決的。雖然具體到每個小點(diǎn),單從技術(shù)的角度來說,可能未必很難,但要支持更多系統(tǒng),具備更好的通用化,還有很長的一段路可走。這是一個會隨著業(yè)務(wù)的發(fā)展,需要持續(xù)改進(jìn)的工作。

作者:小中

來源:微信公眾號:政采云技術(shù)

出處:https://mp.weixin.qq.com/s/O2THu2T-DsvKb2Nd69g5Rw

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年4月23日 下午2:11
下一篇 2024年4月23日 下午2:23

相關(guān)推薦

  • 社科院法學(xué)科研項(xiàng)目

    社科院法學(xué)科研項(xiàng)目: 構(gòu)建現(xiàn)代法治體系研究 摘要: 現(xiàn)代法治體系是法治國家的重要基石,其構(gòu)建需要從法律規(guī)范、司法公正、政治文明等多個方面入手。本文旨在通過對現(xiàn)代法治體系構(gòu)建的研究,…

    科研百科 2025年5月22日
    0
  • 橫向科研項(xiàng)目表

    橫向科研項(xiàng)目表 本文介紹了本實(shí)驗(yàn)室近期完成的橫向科研項(xiàng)目表,旨在向讀者展示我們實(shí)驗(yàn)室近期在科學(xué)研究方面的最新進(jìn)展。 本實(shí)驗(yàn)室近期完成的橫向科研項(xiàng)目包括: 1. 利用深度學(xué)習(xí)技術(shù)對圖…

    科研百科 2025年3月22日
    3
  • 南京理工大學(xué)校級科研項(xiàng)目

    南京理工大學(xué)校級科研項(xiàng)目 南京理工大學(xué)是一所以工為主,工、理、管、文、法、教育、藝術(shù)等多個學(xué)科門類協(xié)調(diào)發(fā)展的綜合性大學(xué)。近年來,南京理工大學(xué)在科技創(chuàng)新方面取得了顯著的進(jìn)展,同時也積…

    科研百科 2024年8月9日
    51
  • 科研項(xiàng)目所需資源表

    科研項(xiàng)目所需資源表 科研項(xiàng)目所需的資源是進(jìn)行科學(xué)研究的基礎(chǔ),這些資源包括人力、物力、財(cái)力等。一份詳細(xì)的科研項(xiàng)目所需資源表可以幫助研究人員更好地了解所需的資源,從而更好地組織和管理項(xiàng)…

    科研百科 2025年3月14日
    0
  • pms 項(xiàng)目管理軟件

    項(xiàng)目管理軟件是一種用于管理項(xiàng)目進(jìn)度、成本、質(zhì)量、風(fēng)險(xiǎn)等信息的軟件工具。在現(xiàn)代商業(yè)環(huán)境中,項(xiàng)目管理軟件已經(jīng)成為了一種必不可少的工具,可以幫助企業(yè)更好地管理項(xiàng)目,提高項(xiàng)目的效率和質(zhì)量。…

    科研百科 2024年7月27日
    32
  • 全面復(fù)工?幫你評測了這幾款考勤管理app

    先給大家?guī)硪粍t好消息,隨著各級政府和前線的白衣天使們的不懈努力,全國新型冠狀病毒肺炎的確診人數(shù)已經(jīng)下降到2萬以下了,相信不久后大家就又能火鍋唱歌小燒烤,電影逛街開party了~ …

    科研百科 2022年10月12日
    221
  • 國防科研項(xiàng)目 檔案

    國防科研項(xiàng)目檔案 隨著現(xiàn)代戰(zhàn)爭越來越呈現(xiàn)出智能化和數(shù)字化的特點(diǎn),國防科研項(xiàng)目的科技創(chuàng)新也變得越來越重要。這些項(xiàng)目不僅有助于提升軍隊(duì)的戰(zhàn)斗力,同時也可以為國家安全和發(fā)展做出更大的貢獻(xiàn)…

    科研百科 2025年2月24日
    4
  • 人力資源管理軟件app

    人力資源管理軟件app:企業(yè)人力資源管理的新時代 隨著信息技術(shù)的不斷發(fā)展,人力資源管理軟件app已經(jīng)成為企業(yè)人力資源管理的必備工具。這種軟件app能夠大大提高人力資源管理的效率,幫…

    科研百科 2024年9月18日
    22
  • 一圖讀懂《高州市開展黨建引領(lǐng)鄉(xiāng)村治理試點(diǎn)工作實(shí)施方案》(黨建引領(lǐng)鄉(xiāng)村治理示范村)

    近日,中共高州市委基層治理領(lǐng)導(dǎo)小組印發(fā)了《高州市開展黨建引領(lǐng)鄉(xiāng)村治理試點(diǎn)工作實(shí)施方案》,明確了黨建引領(lǐng)鄉(xiāng)村治理的25項(xiàng)主要任務(wù)。 高州市認(rèn)真貫徹新時代黨的建設(shè)總要求和新時代黨的組織…

    科研百科 2023年6月21日
    187
  • 大學(xué)生如何寫好項(xiàng)目申請書——如何寫研究意義(項(xiàng)目申請書研究目的怎么寫)

    原創(chuàng) 陳真玲 公眾號 科研小視界 2023-07-12 發(fā)表于北京 如何寫好大學(xué)生項(xiàng)目申請書研究意義或者選題依據(jù),以下是我的經(jīng)驗(yàn): 研究意義實(shí)際上就是你為什么要選擇這個題目?試想一…

    科研百科 2024年4月15日
    63