轉(zhuǎn)自:https://link.jianshu.com/?t=http://blog.itpub.net/16436858/viewspace-627049
原創(chuàng) Linux操作系統(tǒng) iSQlServer 2010-02-08 15:20:32
權(quán)限管理
權(quán)限管理抱怔,主要是人員和權(quán)限之間的關(guān)系,但是如果讓人員直接和權(quán)限打交道嘀倒,那么權(quán)限的賦值屈留、權(quán)限的撤銷以及權(quán)限的變動(dòng)會(huì)非常的麻煩,這樣引入了测蘑,角色灌危,給角色賦權(quán)限,然后給用戶分配角色碳胳。
這個(gè)設(shè)計(jì)主要涉及6張表勇蝙,
用戶表,(用于存儲(chǔ)用戶的所有信息)
權(quán)限表,(用于存儲(chǔ)所有的權(quán)限)
角色表挨约,(用于存儲(chǔ)所有的角色)
用戶和角色的關(guān)聯(lián)表味混,(用戶和角色的關(guān)聯(lián))
角色和權(quán)限的關(guān)聯(lián)表,(角色和權(quán)限的關(guān)聯(lián))
菜單表诫惭,(里面關(guān)聯(lián)了權(quán)限翁锡,主要是現(xiàn)實(shí)用的)
用戶表
代碼
CREATE TABLE [dbo].[Users](
? ? [UserID] [int] IDENTITY(1,1) NOT NULL,
? ? [UserName] [nvarchar](50) primary key,--帳號(hào)
? ? [Password] [nvarchar](50) ,
? ? [UserDspName] [nvarchar](50) ,
? ? [Sex] [char](1),
? ? [Birthday] [datetime],
? ? [Phone] [nvarchar](20)? ,
? ? [Email] [nvarchar](100),
? ? [EmployeeID] [nvarchar](20) ,
? ? [Activity] [bit],--是否可用
? ? [UserType] [char](2) ,
? ? [Style] [nvarchar](50)
)
權(quán)限表:
CREATE TABLE [dbo].[Permission](
? ? [PermissionID] int identity,
? ? [Description] [nvarchar](50) --權(quán)限名稱
)
角色表:
CREATE TABLE [dbo].[Roles](
? ? [RoleID] [int] IDENTITY,
? ? [Description] [nvarchar](200)--角色名稱
)
用戶和角色的關(guān)聯(lián)表:
代碼
CREATE TABLE [dbo].[UserRoles](
? ? [UserID] [int] NOT NULL,--用戶ID
? ? [RoleID] [int] not null ,--權(quán)限ID
CONSTRAINT [PK_UserRoles] PRIMARY KEY CLUSTERED
(
? ? [UserID] ASC,
? ? [RoleID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
角色和權(quán)限的關(guān)聯(lián)表:
代碼
CREATE TABLE [dbo].[RolePermissions](
? ? [RoleID] int? NOT NULL,--角色I(xiàn)D
? ? [PermissionID]int NOT NULL,--權(quán)限ID
CONSTRAINT [PK_RolePermissions] PRIMARY KEY CLUSTERED
(
? ? [RoleID] ASC,
? ? [PermissionID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
菜單表:
代碼
CREATE TABLE [dbo].[menu](
? ? [ID] [int] IDENTITY(1,1) NOT NULL,
? ? [TextCH] [nvarchar](100)? NULL,--菜單的中文顯示
? ? [TextEN] [nvarchar](200)? NULL,--菜單的英文名稱
? ? [ParentID] [int] NULL,--父節(jié)點(diǎn)
? ? [orderID] [int] NULL,--同一個(gè)父節(jié)點(diǎn)下面的排序
? ? [Url] [nvarchar](200) ,--菜單對(duì)于的權(quán)限
? ? [PermissionID] [int] NULL,--權(quán)限ID
? ? [ImageUrl] [nvarchar](50) NULL--菜單圖片鏈接
) ON [PRIMARY]
以上便是所有的數(shù)據(jù)庫(kù)結(jié)構(gòu),代碼正在實(shí)現(xiàn)中夕土;
最后權(quán)限的最終呈現(xiàn)和表現(xiàn)是通過(guò)菜單來(lái)實(shí)現(xiàn)的盗誊,個(gè)人感覺(jué)粒度太大了(最小是頁(yè)面),現(xiàn)在我想知道能否將權(quán)限加到某一個(gè)按鈕上面隘弊,請(qǐng)大家指點(diǎn)