許可權管理 使用者與模組關係

2021-09-09 02:53:51 字數 3528 閱讀 4649

使用者與模組關係功能,您可以寫成跟使用者與角色關係一樣。不過下面實現方法會看到更多的許可權控制。

介面如下截圖:

資料表結構如下:

setansi_nulls 

ongo

setquoted_identifier 

ongo

create

table

[dbo].

[usersmodule](

[usersid][

int]

notnull,[

moduleid][

smallint

]not

null,[

purview][

int]

notnull

) on

[primary]go

alter

table

[dbo].

[usersmodule

]with

check

addconstraint

[fk_usersmodule_module

]foreign

key(

[moduleid])

references

[dbo].

[module](

[moduleid])

onupdate

cascade

ondelete

cascade

goalter

table

[dbo].

[usersmodule

]check

constraint

[fk_usersmodule_module]go

alter

table

[dbo].

[usersmodule

]with

check

addconstraint

[fk_usersmodule_users

]foreign

key(

[usersid])

references

[dbo].

[users](

[usersid])

onupdate

cascade

ondelete

cascade

goalter

table

[dbo].

[usersmodule

]check

constraint

[fk_usersmodule_users]go

接下來,我們得寫分配許可權的儲存過程:

setansi_nulls 

ongo

setquoted_identifier 

ongo

create

procedure

[dbo].

[usp_usersmodule_assignmoduleaction](

@usersid

int,

@moduleid

smallint

,    

@browsing

bit,

@searching

bit,

@creating

bit,

@editing

bit,

@updating

bit,

@deleting

bit,

@erasing

bit,

@submiting

bit,

@auditing

bit,

@reporting

bit,

@receiving

bit,

@delivering

bit)

asbegin

transaction

declare

@purview

int=0if

@browsing=1

set@purview

=@purview+1

if@searching=1

set@purview

=@purview+2

if@creating=1

set@purview

=@purview+4

if@editing=1

set@purview

=@purview+8

if@updating=1

set@purview

=@purview+16

if@deleting=1

set@purview

=@purview+32

if@erasing=1

set@purview

=@purview+64

if@submiting=1

set@purview

=@purview

+128

if@auditing=1

set@purview

=@purview

+256

if@reporting=1

set@purview

=@purview

+512

--如果有更多操作許可權,可以此新增 

if@purview

>

0and

@browsing=0

set@purview

=@purview+1

if(select

count(*

)  from

[usersmodule

]where

[usersid]=

@usersid

and[

moduleid]=

@moduleid

)>

0begin

update

[usersmodule

]set

[purview]=

@purview

where

[usersid]=

@usersid

and[

moduleid]=

@moduleid

if@@error

<>

0rollback

transaction

endelse

begin

insert

into

[usersmodule](

[usersid],

[moduleid],

[purview]) 

values

(@usersid

,@moduleid

,@purview)if

@@error

<>

0rollback

transaction

endcommit

transaction

go

許可權管理 模組與頁面關係

把控制的頁面分類,即以模組來分類,如同角色所擁有頁面一樣,最終我們只為使用者分配某一模組,來控制到使用者只能訪問相關的頁面。asp.net前端介面 在資料庫,表 modulepages 結構如下,參考角色與頁面關係表結構一樣 實現為模組分配頁面的事件,還得寫分配事件的儲存過程 setansi nul...

許可權管理 使用者與角色關係

許可權管理,必涉及到使用者與角色關係。下面的做法,是對某乙個使用者授權擁有某個角色。乙個使用者可擁有多個角色。建立一張表 usersrole 其中有三個字段,usersid 註冊使用者id,roleid 角色表的主id,還有乙個字段 isenable 資料型別為bit是記錄使用者是否擁有此角色。表的...

使用者管理與許可權管理

1 新增使用者 首先用adduser命令新增乙個普通使用者,命令如下 adduser tommy 新增乙個名為tommy的使用者 passwd tommy 修改密碼 changing password for user tommy.new unix password 在這裡輸入新密碼 retype ...