亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

企業級權限控制

企業級權限控制

明月笑刀無情 2018-11-02 05:02:11
目前公司正在整合公司系統,需要一套權限控制架構。目前權限劃分:1、Login2、menu3、Program4、function(頁面控件)5、Data(資料)  5.1 Field(資料列)  5.2 Row (資料行)目前對前4種控制都已做到,但是對5種的權限管控就比較麻煩,現在的設計是這樣的運用c#代理機制,對方法進行攔截,過濾SQL。如:原SQL: SELECT a,b FROM A過濾后SQL:SELECT  a.a FROM (SELECT a,b FROM A) a Where a.a > 100這樣的設計要對每一條SQL的字段進行維護,經理認為這樣的維護量太大。請大家指點,給出一個更好的方案
查看完整描述

2 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

原SQL: SELECT a,b FROM A

過濾后SQL:

if(Exist(select top 1 from A_FieldConfig where user = currentUser and Field ='a')

   && Exist(select top 1 from A_FieldConfig where user = currentUser and Field ='b')) 

begin

 SELECT  a,b FROM A Where id in (select id from A_RowConfig where user = currentUser)

end

貌似直譯的業務邏輯,好處在于易于理解(維護?),壞處在于,貌似配置起來不簡單!


查看完整回答
反對 回復 2018-11-05
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

這樣的設計要對每一條SQL的字段進行維護,經理認為這樣的維護量太大。"??

一點不大,你只要在查詢語句時負責解析where條件就可以了! 并不需要知道每一條sql語句,即使你一定要這樣做,也只是在DAL層做一個重寫,在業務層調用時調用重載后的方法即可。


查看完整回答
反對 回復 2018-11-05
  • 2 回答
  • 0 關注
  • 442 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號