Day34saas export RBAC許可權模型

2021-10-10 05:52:56 字數 1847 閱讀 6068

(1)如何設計使用者許可權

普通的使用者許可權設計

三個表搞定(使用者表,許可權表,使用者許可權表)

(2)有什麼特點?

》1 租戶增加,選成會大量的冗餘資料!

》2 新增或者刪除許可權不方便

建議使用rbac許可權模型

(1)什麼是rbac許可權模型?

rbac 是基於角色的訪問控制(role-based access control )

(2)rbac許可權模型有什麼特點?

》1 先給角色設定許可權

》2 再給使用者分配角色

》3 最後使用者得到這些角色的許可權

》4 如果想知道乙個使用者有什麼許可權,則要反過來

(1)五表之間的關係

角色與許可權: 多對多。(產生一張角色許可權中間表)

使用者與角色:多對多。(產生一張使用者角色中間表)

mysql表結構

pd表結構

角色的本質就是乙個集合,裡面存放在著許可權的名稱。

給使用者指定角色,其實就是將許可權打包給使用者。

(1)老王有哪些許可權?

# 5張表

# 使用者表

select

*from pe_user;

# 角色表

select

*from pe_role;

# 角色使用者表(中間表) 得知 乙個使用者屬於哪個角色

select

*from pe_role_user;

# 許可權表(功能表,模組表)

select

*from ss_module;

# 角色許可權表(中間表) 得知 乙個角色有哪些許可權

select

*from pe_role_module;

select

*from pe_user u,pe_role_user ru,pe_role r ;

## 隱式內連線

select m.name from pe_user u,pe_role_user ru,pe_role r,pe_role_module rm,ss_module m

where u.user_id = ru.user_id

and ru.role_id = r.role_id

and r.role_id = rm.role_id

and rm.module_id = m.module_id

and u.user_name=

'老王'

## 顯示內連線

select m.name from pe_user u inner

join pe_role_user ru inner

join pe_role r inner

join pe_role_module rm inner

join ss_module m

on u.user_id = ru.user_id

and ru.role_id = r.role_id

and r.role_id = rm.role_id

and rm.module_id = m.module_id

and u.user_name=

'老王'

課後作業 day34

1.檢視崗位是teacher的員工姓名 年齡 select name,age from staff t where station teacher 2.檢視崗位是teacher且年齡大於30歲的員工姓名 年齡 select name,age from staff t where station te...

python學習 Day34 python檔案訪問

open r 以讀方式開啟 w 以寫方式開啟 檔案存在,內容會被覆蓋。不存在建立。a 以追加模式 r 以讀寫模式開啟 w 以讀寫模式開啟 參見 w a 以讀寫模式開啟 參見 a rb 以二進位制讀模式開啟 wb 以二進位制寫模式開啟 參見 w ab 以二進位制追加模式開啟 參見 a rb 以二進位制...

Day34 PHP遞迴實現無限級分類

在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。遞迴,簡單的說就是一段程式 的重複呼叫,當把 寫到乙個自定義函式中,將引數等變數儲存,函式中重複呼叫函式,直到達到某個條件才跳出...