通用數據授權方案
1> 問題提出
為實現表格數據的橫向和縱向授權,如圖表格:
|
|
標題1 |
標題2 |
標題3 |
標題4 |
標題5 |
標題6 |
|
行1 |
|
|
|
|
|
|
|
行2 |
|
|
|
|
|
|
|
行3 |
|
|
|
|
|
|
|
行4 |
|
|
|
|
|
|
橫向:有行1至行4四行數據。
縱向:有標題1至標題6 列數據。
在業務系統中,為了數據的安全或對不同用戶采用相關數據查看權限,
如
張三只能查看行1,行2的數據,并且只能查看標題3,標題4,標題5這三列數據,如何實現???
王五只能查看行1,行2的數據,可以看到所有列數據如何實現???
趙六可以查看所有行數據,但只能查看列標題1,標題2 的數據如何實現???
2> 方案描述
(1) 橫向維度,即不同用戶可以查看那些行的數據。
a> 一般的管理系統都有組織機構或用戶組相關基礎數據,業務數據與基礎數據有關聯,可通過基礎數據作為條件來獲取當前用戶的橫向數據。一般業務系統表現為,當前用戶只能查看自己本部門或組織的相關數據。
b>無組織機構或用戶組時,定義一張數據范圍表,用來存儲用戶主鍵與業務數據主鍵和業務數據類型,先設置用戶數據范圍,在用戶查詢業務數據時,把數據范圍表的相關設置作為查詢條件即可實現。
(2) 縱向維度, 即不同用戶可以查看哪些列的數據。
相比橫向維度而言,縱向維度的實現復雜度較大(因為后臺結果集形式多樣,且與業務的關聯性較強)。實現數據的過濾不宜過多占用系統資源,采用前端界面列隱藏的方式來處理。首先定義某界面授權顯示的列,針對不同的用戶或角色,實現界面顯示列的授權。根據用戶權限將業務結果集展現在界面上,同時根據界面列授權信息將無權限查看的列自動隱藏。
易智軟件,專注跨平臺系統開發 www.yizhisoft.cn

浙公網安備 33010602011771號