資料表設計
分為使用者表、角色表、角色擁有許可權表、許可權表、使用者所屬角色表
表名:users(使用者表)
字段型別
長度說明
idint
自動編號,主鍵
username
varchar
20password
varchar
20表名:roles(角色表)
字段型別
長度說明
idint
自動編號,主鍵
name
varchar
50表名:usersroles(使用者所屬角色表)
字段型別
長度說明
idint
自動編號,主鍵
userid
int對users.id做外來鍵
roleid
int對roles.id做外來鍵
表名:permissions(許可權表)
字段型別
長度說明
idint
自動編號,主鍵
name
varchar
50許可權的名稱
表名:rolespermissions(角色許可權表)
字段型別
長度說明
idint
自動編號,主鍵
roleid
int對roles.id做外來鍵
permissionid
int對permissions.id做外來鍵
allowed
small int
該許可權是否被允許
完成後的關係圖如下所示:
以下的儲存過程用於檢查使用者@username是否擁有名稱為@permission的許可權
create procedure checkpermission
(@username varchar(20),
@permission varchar(50))as
select min(allowed) from rolespermissions
inner join permissions on permissions.id = permissionid
inner join roles on roles.id = roleid
inner join usersroles on usersroles.id = roles.id
inner join users on users.id = usersroles.userid
where users.username=@username andpermissions.name=@permission
單使用者多角色許可權的原理
假設使用者a現在同時有兩個角色programmer和contractor的許可權
permission名稱
角色programmer許可權
角色contractor許可權
組合後許可權
檢視檔案
允許(allowed=1)
允許(allowed=1)
允許編輯檔案
允許(allowed=1)
不允許(allowed=0)
不允許上傳
允許(allowed=1)
沒有此許可權的記錄
允許
單使用者多角色許可權的MSSQL實現 轉)
單使用者多角色許可權的mssql實現 資料表設計 分為使用者表 角色表 角色擁有許可權表 許可權表 使用者所屬角色表 表名 users 使用者表 字段型別 長度說明 idint 自動編號,主鍵 username varchar 20 password varchar 20 表名 roles 角色表 ...
CentOS的單使用者模式
linux系統下的單使用者模式類似於windows系統的安全模式,這種模式特殊情況下才建議使用,比如 超級管理員的登入密碼忘記,無法登陸主機等情況!不過在工作環境中最好還是盡量避免出現要進入這種模式的情況。在centos6中進入單使用者模式 出現開機介面時立即按下 e 鍵,可以進入以下介面 在上圖所...
MSSQL 資料庫修復,語句參考及單使用者模式的處理
mssql 資料庫修復,語句參考及單使用者模式的處理 修理還原乙個庫的時候,碰到庫不完整的情況,採用dbcc修復。dbcc checkalloc transact sql 檢查指定資料庫的磁碟空間分配結構的一致性。dbcc checkdb transact sql 通過執行下列操作檢查指定資料庫中所...