iT邦幫忙

0

網頁如果要設定權限,怎麼設計比較好?

  • 分享至 

  • xImage

比如說上方有選單

報表
統計
文章
商品

管理員
編輯
會計

這是每一個職稱的名字
每一個職稱能進入的頁面不同
比如說管理員可以進入以上四個頁面
編輯只能進文章跟商品
會計只能進報表跟統計

前提是管理員可以勾選每個職缺可進入哪些頁面

1.資料庫會怎麼設計呢
2.頁面怎麼擋比較有效率呢

有高手能指點一下嗎?

1. 要有一個 使用者權限表
2. 每個表單要針對權限做額外的設計
例如 讀 新增 修改 審核 刪除 這些動作
3. 進入表單先去 權限表 檢查看 USER 在這個表單有什麼權限
然後再去顯示相對應的功能或動作
上面說的是基本的做法,如果你還有設定群組的話,那權限檢查那裏還要把USER群組加進去
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
stephen3342
iT邦新手 2 級 ‧ 2018-08-24 15:53:10
最佳解答

大約的結構
其他欄位自已再加上去
Table間關連 圓頭表示 1 箭頭表示 多
https://ithelp.ithome.com.tw/upload/images/20180824/20098325dDaWriYFja.png

我也貢獻一張圖好了,資料表的話我會這麼設計
https://ithelp.ithome.com.tw/upload/images/20180829/200970824wOEpSUDVr.jpg

aa4731073 iT邦新手 4 級 ‧ 2022-04-11 16:01:43 檢舉

請問一下大大,不是只要建立user(使用者)、permission(權限)、permission_owner(權限擁有者)在互相FK,就好了嗎? 怎麼需要建立這麼多張table?

窮嘶發發發 大師的結構比較好, 不同的Page是會有不同的Right, 我的Page Right是固定欄位.
情境說明: 當公司人數較多, 有多部門, 我們以業務部門為例, 我建立權限的順序是 1.業務部Group, 2.業務部應有的權限GroupRight, 3.業務部成員UserGroup.
如此, 當有新業務人員報到, 只要將該成員加入UserGroup即可, 系統有新增功能提供給業務使用, 也是將該功能加入GroupRight即可.
一般使用Group即可符合大部份的需求, 但有時, 就是要開放某一特殊功能給業務部中的某位同事, 此時就會使用到UserRight.
若設計只有User而沒有Group, 人員未適當的分組, 對於權限的管理並不太理想, 調整權限時也較費時間.

0
黃彥儒
iT邦高手 1 級 ‧ 2018-08-24 13:08:12

使用者-政策

一個使用者可以有多個政策
那政策存的是字串,格式如下

編輯:文章:rw|商品:rw
會計:報表:rw|統計:rw

在文章的頁面檢核進入的人是否有相應的權限,權限採白名單,有就可以進入、修改
用兩張一對多的資料表就完工了

火爆浪子 iT邦研究生 1 級 ‧ 2018-08-24 13:46:25 檢舉

還是有點不懂,方便+藾或補充說明嗎

1
j2ian
iT邦新手 5 級 ‧ 2018-08-25 01:53:14

可參考:
https://github.com/OWASP/rbac
https://my.oschina.net/programs/blog/1648205

簡單淺顯的說
在進入每個頁面之前都先檢查Role
沒有相對應的Role就轉移到首頁

1
舜~
iT邦高手 1 級 ‧ 2018-08-27 17:33:42

可以角色為基礎的存取控制(Role-based access control, RBAC),將系統授權拆解為User(使用者)、Role(角色)、Permission(權限)。讓開發人員可以在系統內,定義使用者屬於哪個角色、哪個角色擁有那些權限、權限可以使用哪些功能。後續使用者通過驗證之後,就可以依照角色權限來使用系統功能。

參考
1.維基百科
https://zh.wikipedia.org/wiki/以角色為基礎的存取控制
2.後台設計的基石:用戶許可權管理(RBAC)及工作流(workflow)模型
https://www.pixpo.net/technology/0IXXB4vD.html
3.RBAC概念与系统设计
http://blog.thrimbda.com/2017/05/06/RBAC实践系统设计/

我要發表回答

立即登入回答