兩個關於許可權設定的問題思考
最近這兩天做動態選單和許可權校驗,想到了兩個有意思的問題。
第一個是對於一個使用者的操作許可權,無非就是這四個方面,增刪改查。
如果透過字母來標識,可能就是增(I)刪(D)改(U)查(S)
那麼一個使用者或者表所擁有的許可權就可能有IS,IDUS,IDU類似這樣的組合,其實如此一來會把我們已有的方式打亂,因為4個元素的組合,考慮到順序,其實有很多,比如2個連續,3個連續,順序不一樣。
所以如果使用一個欄位來校驗區別,採用字元的形式,其實還是很難,很容易出錯,比如ISU, SUI都代表的是一個含義,但是有多種組合方式。
或者換個思路,如果我使用4個欄位來區別校驗,分別為增刪改查,問題似乎會迎刃而解,事實上我們就需要在4個欄位間進行大量的組合,語句可能會很囉嗦。有的同學想使用類似 in ('select','insert','delete','update')的形式來校驗,但是顯而易見,這種方式無法定位邊界,比如select+insert+update和select+insert+update+delete在上面的情況都會正常返回結果。
所以能不能用一個欄位來標示這個問題呢,我想了一個。
比如增刪改查,按照權重,其實應該是select,insert,update,delete這樣的權重,如果我們制定為1,2,3,4的話,很容易混淆,比如是4,可能是1+3,4的組合,這樣就不好判斷到底是擁有哪些許可權。
所以我們需要區別對待,借用了人民幣的思路。人民幣我們知道有1元,兩元。五元,十元。所以我們按照這個方式來組合就會好很多,權重值為:
select(1)
insert(2)
update(5)
delete(10)
但是實際上許可權在業務中是有組合關係的,會有如下的幾種組合。
比如
select
insert+select
delete+select
update+select
select+insert+update
select+insert+update+delete
其實組合就這些,按照權重組合就是:
select 1
insert+select 3
delete+select 11
update+select 6
select+insert+update 8
select+insert+update+delete 18
所以我們得到一個數字,就知道它確切的許可權了,在做處理的時候就很容易了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2152360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於許可權設定的一個小把戲
- 關於公司程式碼許可權的問題
- 關於oracle檔案許可權的問題Oracle
- [BUG反饋]許可權條目中缺少兩個公開方法的許可權設定
- 關於jdon裡許可權系統的問題
- 請教:一個關於行級資料許可權模型的問題模型
- 關於許可權系統的設計
- 儲存過程,角色相關的呼叫者許可權和定義者許可權問題儲存過程
- 關於Linux許可權設定的一點小總結Linux
- 【轉載】關於後臺許可權,我的幾點思考
- 如何設定許可權?
- 續:關於許可權系統的設計
- 基於角色的許可權系統的問題
- MySQL許可權問題MySql
- postgresql關於訪問檢視需要的許可權SQL
- 關於檢視和儲存過程的許可權問題探究儲存過程
- 關於動態許可權
- 【轉】關於MySQL許可權MySql
- 關於系統許可權的設計-位操作
- moderator permission的許可權問題
- ubuntu 許可權管理設定Ubuntu
- Atitit godaddy 檔案許可權 root許可權設定Go
- 記一次 Laravel日誌許可權許可權問題(定時器導致)Laravel定時器
- postgresql關於許可權的總結SQL
- 關於如何利用COM+,來提高ASP執行許可權的問題!
- android 許可權問題Android
- SQL Server許可權問題SQLServer
- apache+php 的匿名FTP功能目錄許可權設定問題(轉)ApachePHPFTP
- redis密碼設定、訪問許可權控制等安全設定Redis密碼訪問許可權
- 對關鍵信貸控制欄位設定許可權
- 關於 Laravel 日誌許可權Laravel
- 認證/授權與許可權的問題
- 小程式許可權設定(位置)
- Windows許可權設定詳解Windows
- PHP專案許可權設定PHP
- 各位高手,問下許可權上的問題
- 關於jive的設定問題
- win10 資料夾許可權怎麼設定_win10如何設定資料夾訪問許可權Win10訪問許可權