<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 193,  comments - 520,  trackbacks - 0
    一個(gè)朋友留言,提了一些關(guān)心的問題,這里說說自己的想法(不一定對)。
    問題:
    數(shù)據(jù)范圍的控制:“事實(shí)上不是每個(gè)用戶都可以看到所有記錄的。以財(cái)務(wù)管理為例,部門經(jīng)理只能查看金額小于1W的數(shù)據(jù);而總經(jīng)理則沒有限制”。象這樣要根據(jù)數(shù)據(jù)的某個(gè)字段對數(shù)據(jù)范圍進(jìn)行控制,應(yīng)該實(shí)現(xiàn)呢,是通過AOP動態(tài)改變執(zhí)行的SQL嗎?這樣似乎不太可行,如果要執(zhí)行的SQL特別復(fù)雜,那動態(tài)改變SQL 就更難了。現(xiàn)在的應(yīng)用中一般使用hibernate,這樣的話就變成了動態(tài)改變HQL,也是難的。
    回答:目前在我的代碼里就是通過AOP動態(tài)改變執(zhí)行的SQL,改變HQL確實(shí)很困難,但是改變criteria就比較簡單了。對于特別復(fù)雜的sql,我的建議是把這些SQL直接寫到你的業(yè)務(wù)程序里去,或者單獨(dú)配置出來,和ibatis比較類似。

    問題:單條數(shù)據(jù)ACL權(quán)限:由于數(shù)據(jù)是不斷增加的,所以要對單條數(shù)據(jù)的ACL權(quán)限,不應(yīng)該是數(shù)據(jù)已存在,然后再對存在的數(shù)據(jù)授權(quán),應(yīng)該是對某種規(guī)則進(jìn)行授權(quán)。以你舉的個(gè)人通訊錄為例,各人自己維護(hù)自己的通訊記錄,數(shù)據(jù)只對自己可見,要想實(shí)現(xiàn)對自己的數(shù)據(jù)的可再授權(quán),應(yīng)該是對符合某個(gè)規(guī)則的數(shù)據(jù)進(jìn)行授權(quán),也就是說 “要執(zhí)行授權(quán)操作的人就是數(shù)據(jù)的擁有者”這是個(gè)規(guī)則,那是不是應(yīng)該對這個(gè)規(guī)則授權(quán)呢。
    回答:我理解的和你不一樣。我的理解是這樣的,實(shí)際中我把單條數(shù)據(jù)的權(quán)限劃分為擁有、瀏覽、修改、刪除四種權(quán)限,用戶擁有哪種權(quán)限就可以對數(shù)據(jù)進(jìn)行相應(yīng)哪種操作。“要執(zhí)行授權(quán)操作的人就是數(shù)據(jù)的擁有者”也可以理解為“要執(zhí)行授權(quán)操作的人就必須有該數(shù)據(jù)的擁有權(quán)限”,這可以理解為一種規(guī)則,但我更愿意把它理解為一種習(xí)慣,很顯然對習(xí)慣授權(quán)是沒有意義的。當(dāng)然這里是存在規(guī)則的,這種規(guī)則簡單的說是這樣:當(dāng)我新增一條數(shù)據(jù)時(shí),哪些人對該條數(shù)據(jù)擁有擁有的權(quán)限,哪些人對該條數(shù)據(jù)擁有瀏覽的權(quán)限,哪些人對該條數(shù)據(jù)擁有修改的權(quán)限,哪些人對該條數(shù)據(jù)擁有刪除的權(quán)限。權(quán)限相關(guān)記錄會在新增這條數(shù)據(jù)時(shí)根據(jù)該規(guī)則生成。在上面的例子里,這一規(guī)則體現(xiàn)在:各人自己維護(hù)自己的通訊記錄,數(shù)據(jù)只對自己可見。也就是說在用戶新增自己的通訊記錄時(shí),系統(tǒng)同時(shí)往權(quán)限表里插入了該用戶對該記錄的一個(gè)擁有權(quán)限記錄。

    問題:數(shù)據(jù)字段權(quán)限:要實(shí)現(xiàn)對某個(gè)字段的權(quán)限控制,那是不是應(yīng)該所有字段應(yīng)該有個(gè)默認(rèn)的操作呢,或者默認(rèn)就是只可以查看,要進(jìn)行修改的話就必須授權(quán)。但是通常整個(gè)應(yīng)用中的字段非常多,這樣是乎不太合理。那是不是可以做成所有字段默認(rèn)就是可以CRUD的,只有要控制的字段才進(jìn)行權(quán)限判斷。同樣,由于使用 Hibernate來進(jìn)行持久化,那對字段的控制是不是就變成了對類中屬性的控制。
    回答:數(shù)據(jù)字段權(quán)限一直是一個(gè)很難辦的事情,實(shí)際上我很傾向于把這個(gè)問題推到頁面來解決。其實(shí)所有的權(quán)限控制最后都是要通過頁面來表現(xiàn)的。其實(shí)對字段來說,所需要的權(quán)限也很簡單:可見/不可見,只讀/可修改。這樣的話,通過標(biāo)簽的形式來控制字段的顯示、只讀就顯得很自然。對字段的權(quán)限記錄可以放入到數(shù)據(jù)庫,或者xml中,與具體的pojo類沒有關(guān)系,當(dāng)渲染頁面的時(shí)候,由標(biāo)簽來讀取相關(guān)權(quán)限記錄并控制顯示。

    問題:角色權(quán)限的繼承:角色權(quán)限的繼承通過規(guī)則來做,這個(gè)規(guī)則應(yīng)該怎么設(shè)計(jì)呢。
    回答:這個(gè)問題其實(shí)是一個(gè)分離關(guān)注點(diǎn)的問題。你可以抽象出一個(gè)規(guī)則接口,這個(gè)接口定義了對部門、角色下的用戶而言,哪些權(quán)限是可以從部門角色繼承的,繼承幾級,哪些是不可以的。然后再具體實(shí)現(xiàn)。更靈活的方式是定義出一個(gè)配置文件,運(yùn)行時(shí)可以靈活修改。




    http://www.tkk7.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請注明出處:)
    posted on 2007-06-05 17:36 ronghao 閱讀(4068) 評論(3)  編輯  收藏 所屬分類: 權(quán)限相關(guān)

    FeedBack:
    # re: 關(guān)于權(quán)限系統(tǒng)設(shè)計(jì)的一些問與答
    2008-03-18 00:25 | leekiang
    字段級別的權(quán)限控制,你用標(biāo)簽去讀取配置,可以做到頁面級別的控制,即客戶可見/不可見,只讀/可修改,但這個(gè)并不能容易的做到url級別控制,即防止客戶繞過頁面,模擬提交.
    期待你的回復(fù) 。  回復(fù)  更多評論
      
    # re: 關(guān)于權(quán)限系統(tǒng)設(shè)計(jì)的一些問與答
    2008-04-07 18:20 | ronghao
    @leekiang
    在其他文章里有交代,這些權(quán)限控制是結(jié)合使用的。  回復(fù)  更多評論
      
    # re: 關(guān)于權(quán)限系統(tǒng)設(shè)計(jì)的一些問與答[未登錄]
    2011-01-22 11:46 | 學(xué)習(xí)者
    博主作者、您好!本人希望向您學(xué)習(xí)一下權(quán)限有關(guān)的問題、加我的Q:343537050.  回復(fù)  更多評論
      
    <2007年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    關(guān)注工作流和企業(yè)業(yè)務(wù)流程改進(jìn)。現(xiàn)就職于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

    常用鏈接

    留言簿(38)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    常去的網(wǎng)站

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲成AV人片在线观看ww| 亚洲熟妇AV日韩熟妇在线| 日韩免费一区二区三区在线播放| 久久久国产精品无码免费专区| 国产卡二卡三卡四卡免费网址| 亚洲日本va中文字幕久久| 好久久免费视频高清| 亚洲AV综合色区无码二区偷拍| 日韩精品免费在线视频| 亚洲中文字幕久久久一区| 日批日出水久久亚洲精品tv| 免费精品久久天干天干| 一本色道久久88—综合亚洲精品 | 亚洲国产婷婷综合在线精品| 国产做国产爱免费视频| 亚洲欧洲自拍拍偷综合| 亚洲精品无码永久在线观看| 国产精品爱啪在线线免费观看| 亚洲国产精品久久久久婷婷老年| 国产在线精品观看免费观看| 久久亚洲精品国产亚洲老地址| 日本免费一区二区在线观看| 日亚毛片免费乱码不卡一区| 午夜精品一区二区三区免费视频 | 99久久婷婷国产综合亚洲| 亚洲偷自拍拍综合网| 免费电影在线观看网站| 两性色午夜免费视频| 亚洲精品国产综合久久久久紧| 成全视频免费高清 | 无人视频在线观看免费播放影院| 国产精品深夜福利免费观看| 97在线视频免费公开观看| 国产成人无码免费看片软件| 亚洲精品V天堂中文字幕| 久久亚洲国产精品成人AV秋霞| 成年人网站免费视频| 成人免费777777被爆出| 亚洲AV无码一区二区大桥未久| 亚洲视频一区二区| 午夜老司机免费视频|