在項(xiàng)目實(shí)際開發(fā)中我們不光要控制一個(gè)用戶能訪問哪些資源,還需要控制用戶只能訪問資源中的某部分?jǐn)?shù)據(jù)。
控制一個(gè)用戶能訪問哪些資源我們有很成熟的權(quán)限管理模型即RBAC,但是控制用戶只能訪問某部分資源(即我們常說的數(shù)據(jù)權(quán)限)使用RBAC模型是不夠的,本文我們嘗試在RBAC模型的基礎(chǔ)上融入數(shù)據(jù)權(quán)限的管理控制。
首先讓我們先看下RBAC模型。
RBAC模型
RBAC是Role-BasedAccess Control的英文縮寫,意思是基于角色的訪問控制。
RBAC事先會在系統(tǒng)中定義出不同的角色,不同的角色擁有不同的權(quán)限,一個(gè)角色實(shí)際上就是一組權(quán)限的集合。而系統(tǒng)的所有用戶都會被分配到不同的角色中,一個(gè)用戶可能擁有多個(gè)角色。使用RBAC可以極大地簡化權(quán)限的管理。
RBAC模型還可以細(xì)分為RBAC0,RBAC1,RBAC2,RBAC3。這里我們不討論他們之間的差異,感興趣的同學(xué)可以自行研究,我們主要聚焦于常見的RBAC0模型上。
如下圖就是一個(gè)經(jīng)典RBAC0模型的數(shù)據(jù)庫設(shè)計(jì)。
在RBAC模型下,系統(tǒng)只會驗(yàn)證用戶A是否屬于角色RoleX,而不會判斷用戶A是否能訪問只屬于用戶B的數(shù)據(jù)DataB。這種問題我們稱之為“水平權(quán)限管理問題”。
數(shù)據(jù)權(quán)限
列表數(shù)據(jù)權(quán)限,主要通過數(shù)據(jù)權(quán)限控制行數(shù)據(jù),讓不同的人有不同的查看數(shù)據(jù)規(guī)則;要實(shí)現(xiàn)數(shù)據(jù)權(quán)限,最重要的是需要抽象出數(shù)據(jù)規(guī)則。文章來源:http://www.zghlxwxcb.cn/news/detail-596909.html
數(shù)據(jù)規(guī)則
比如我們系統(tǒng)的商機(jī)文章來源地址http://www.zghlxwxcb.cn/news/detail-596909.html
到了這里,關(guān)于數(shù)據(jù)權(quán)限就該這么實(shí)現(xiàn)(設(shè)計(jì)篇)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!