系統許可權的設計之簡單設計

2022-02-09 18:41:39 字數 2459 閱讀 7276

工作時間也不長,但是總想寫一些自己的收穫。公司利用的技術也比較單純,asp.net,js也不怎麼需要用,唯一寫的多的就是sql語句。

好了,廢話不多說了,開始談談我在做專案中一些對系統許可權的收穫,不過很多都是專案中看到的,我就想自己重新做一遍。也許會有

很多的問題和考慮不全的地方,但是我還是要寫出來,當做自己的一種學習罷了。

設計思路

(1)使用者表

許可權是根據登陸者不同而不同的,使用者表就比較簡單了,簡單的表設計如下

[user_no] [nvarchar](20) not null, //

使用者id,主鍵

[user_name] [nvarchar](20

) null,

[user_password] [nvarchar](

20) null,

(2)許可權列表

設定所有的許可權,例如新增,修改,查詢

[action_id] [nvarchar](20

) null,

[action_name] [nvarchar](

20) null

(3)功能表

系統的功能是存在資料庫中的,根據許可權來獲取部分功能,並展示。表設計如下:

[function_id] [nvarchar](20) not null,//

功能id

[function_brother_id] [int] not null,//

相同功能的不同頁面

[function_name] [nvarchar](50

) null,

[function_url] [nvarchar](

500) null,

[function_level] [

int] null,

[function_sort] [

int] null,

[function_action] [nvarchar](

100) null,

[function_parent_id] [nvarchar](

20) null,

[function_inmenu] [bit] null,

//是否在選單中

為什麼有[function_brother_id],乙個選單裡面的乙個功能可能會有多個頁面。例如乙個使用者頁面,可能在功能裡面叫使用者資訊,但是會涉及多個頁面,每個頁面都需要許可權。

[function_inmenu]就是判斷同功能裡面選單裡鏈結是其中哪個頁面(只能有乙個)。

[function_action]是根據許可權列表給每個功能賦給許可權

(4)許可權組

我們的許可權是根據組來區分的。乙個使用者在乙個組裡面,那個組裡面有哪幾個功能,其中每個功能有哪幾種許可權。這就是我們的系統許可權的核心了,不過比較簡單。

[group_id] [nvarchar](20

) not null,

[group_name] [nvarchar](

50) null,

這裡面儲存許可權組的基本資訊,一般會預設有系統管理者和一般使用者。

(5)使用者許可權組

設定使用者在哪個群組。我們目前的系統設計的是乙個使用者可以有多個組,但是我覺得乙個使用者設定乙個群組就ok了。如果乙個使用者沒有設定在哪個組,預設為一般使用者。

[group_id] [nvarchar](20

) null,

[user_no] [nvarchar](

20) not null,

(6)群組功能

設定每個群組裡面有哪幾個功能,每個功能有哪幾種許可權。

注意,功能表裡面的許可權與此處不同,可能乙個功能有查詢和刪除許可權,但是本群組裡面的這個功能只有查詢許可權。

這個許可權必須是在功能裡面此功能所有的許可權中。

[group_id] [nvarchar](20

) not null,

[function_id] [nvarchar](

20) not null,

[group_action] [nvarchar](

100) null,

表設計到此ok,算是比較簡單的。

使用過程

(1)登陸時

驗證通過時,

> 根據使用者id去使用者許可權表裡面取得此使用者所對應的群組

>根據群組對應的所有功能去功能表裡面找到相應的在選單中的功能,這裡可以拼成xml來組成功能列表,

這樣就可以實現有些功能在選單,有些沒許可權的則不在,也可以查到此功能有哪些許可權(比如只有查詢許可權,或是還有新增許可權)

進入頁面時的處理

群組功能裡面無此頁面功能時,就算是直接輸入連線也會被拒絕訪問

根據頁面找到功能id,再找到登入者所屬群組此頁面有哪些許可權,根據許可權來實現一下頁面元素的隱藏和顯示(如沒有新增許可權就把新增按鈕隱藏)

這樣就實現了登入者的許可權,進入頁面的許可權和頁面上一些操作的許可權了。

模組簡單設計 設計簡單的賬號系統

下面考慮 乙個簡化版使用者賬戶系統,從註冊,登入,使用,登出四個方面做個簡單的設計 account表包含下面三個字段 id 乙個表唯一的id,標識使用者 user 使用者名稱 passwd 使用者密碼 為了防止資料庫被侵入洩露密碼,需要如md5 passwd 或者crypt單向加密 1,使用者註冊 ...

許可權選單設計

顧名思義,權 代表 權力 劃分了系統的職權,不同的使用者擁有不同的權力劃分 限 代表 限制 在權力劃分的基礎上對職能範圍進行了限制,本文所述的許可權相對簡單,賦予不同角色看到不同選單的許可權。許可權控制能較好地解決系統安全問題,避免公司機密資料外洩,同時,不同部門使用系統時互不干擾,因此被企業廣泛應...

關於許可權管理系統的簡單設計和分析

許可權管理系統的分類 從類別上簡單分類,分成兩類 認證 用來識別使用者的身份 授權 根據登入使用者的身份給予使用者相應的許可權 認證和授權大家顧名思義,可以不用說,來說說那四種控制級別的使用場景和基本實現吧 url級別 首先說說它的實現原理,它基於filter來實現,我的思路是在請求的時候輸入url...