文档库 最新最全的文档下载
当前位置:文档库 › 权限设计=功能权限+数据权限

权限设计=功能权限+数据权限

网络管理系统-权限管理

权限描述 (2)

为什么要有权限管理 (2)

本项目中的权限管理 (2)

权限设计 (2)

名词解释: (2)

权限系统的核心由以下三部分构成:创造权限,分配权限,使用权限 (2)

数据库结构设计 (3)

权限执行步骤 (3)

MSDN说明:https://www.wendangku.net/doc/859494815.html, 母版页和内容页中的事件 (3)

项目步骤说明 (4)

权限代码实现 (4)

第一步:检测登陆和合法Url(BaseMasterPage) (4)

第二步:加载资源和功能菜单加载(MasterPage) (6)

第三步:将资源转化为属性,和错误记录(BasePage) (7)

第四步,第五步:页面初始化数据,进行绑定(资源管理-EditNodeInfo.aspx为例)(Page): (8)

权限描述

为什么要有权限管理

权限管理是Web应用项目中比较关键的环节,因为浏览器是每一台计算机都已具备的,如果不建立权限管理系统,那么一个“非法用户”可以轻而易举通过浏览器访问Web应用项目中的所有功能,资源。因此需要权限管理系统进行权限检测,让经过授权的用户可以正常合法的使用已授权的功能,资源,而对那些未授权的非法用户拒之门外。

本项目中的权限管理

本项目中的权限管理总的可以分为功能管理和资源管理。在这里我定义了以下关系:

权限=功能+资源,在后续出现的权限均指代的是功能+资源

1.功能管理中的功能体现到本系统中就是对应一个网页(url),或网页中的一个按钮

2.资源管理中的资源就是本系统中需要用权限约束的资源对象,包括链路、节点、设

备,事务等信息。

权限设计

名词解释:

a.SystemUsers:系统用户,使用功能,资源的平台用户。

b.Groups:用户组,功能,资源分配的单位与载体。权限不考虑分配给特定的用户而给

组。

c.Roles:角色,一定数量的功能的集合。功能分配的单位与载体,目的是隔离系统用

户(SystemUsers)与权限功能(FunUrl)的逻辑关系.

权限系统的核心由以下三部分构成:创造权限,分配权限,使用权限1)创建权限:分两步,1创建功能;2创建资源

a.创建功能:Creator 创造功能,Creator 在设计和实现系统时会分析,一个子系

统或称为模块,应该有哪些功能,然后将这些功能注册到相应系统模块中,这里实现就是对Url分别注册到FunUrl中

b.创建资源:Creator 创造资源,Creator 在设计和实现系统时会分析系统中需要被

约束的资源有哪些,然后针对每一种资源,都建立一个组,资源关系表。

2)分配权限:分两步,1 功能分配;2 资源分配

a. 功能分配:Administrator创建角色,创建用户组,给用户组分配用户,将用户组

与角色关联,然后Administrator将功能与角色建立关联关系。这样就可以达到功

能分配,这些操作都由Administrator 来完成的。

b.资源分配:Administrator利用组,资源关系表,然后将组和各种资源分别建立关联关

系,这样就可以达到资源分配

3)使用权限:SystemUsers使用Administrator 分配给的权限去使用各个子系统。

数据库结构设计

组,角色关系

功能(Url)Roles

RoleId RoleDesrition RoleAddTime Remark DeleteDate Flag

int

nvarchar(200) datetime

ntext

datetime

int

RoleFun

id

RoleId funid remark CreateDate DeleteDate Flag int

int

int

nvarchar(Max) datetime

datetime

int

GURelation

GURelationId UserId GroupId Remark CreateDate DeleteDate Flag int

int

int

nvarchar(Max) datetime

datetime

int

GTRelation

GTRelationId TransTypeId GroupId Remark CreateDate DeleteDate Flag

int

int

int

varchar(Max)

datetime

datetime

int

GRRelation

GRRelationId

GroupId

RoleId

Remark

CreateDate

DeleteDate

Flag

int

int

int

nvarchar(Max)

datetime

datetime

int

Groups

GroupId

GroupDesrition

GroupAddTime

Remark

DeleteDate

Flag

int

nvarchar(200)

datetime

ntext

datetime

int

GNRelation

GNRelationId GroupId nodeId remark CreateDate DeleteDate Flag int

int

int

nvarchar(Max) datetime

datetime

int

GLRelation

GLRelationId LinkId GroupId Remark CreateDate DeleteDate Flag int

int

int

nvarchar(Max) datetime

datetime

int

GERelation

GERelationId EquipmentId GroupId Remark CreateDate DeleteDate Flag int

int

int

nvarchar(Max)

datetime

datetime

int

FunUrl

funid

url

urlName

paranetFunId

display

remark

Flag

CreateDate

DeleteDate

int

varchar(200)

nvarchar(100)

int

int

nvarchar(Max)

int

datetime

datetime

Users

UserId

UserName

UserPwd

UserAddTime

Remark

RoleId

NodeId

CreateDate

DeleteDate

Flag

int

varchar(50)

varchar(50)

datetime

ntext

int

int

datetime

datetime

int

权限执行步骤

MSDN说明:https://www.wendangku.net/doc/859494815.html, 母版页和内容页中的事件

母版页和内容页都可以包含控件的事件处理程序。对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件。控件事件不会从内容页发送到母版页。同样,也不能在内容页中处理来自母版页控件的事件。

在某些情况下,内容页和母版页中会引发相同的事件。例如,两者都引发Init和Load事件。引发事件的一般规则是初始化事件从最里面的控件向最外面的控件引发,所有其他事件则从最外面的控件向最里面的控件引发。请记住,母版页会合并到内容页中并被视为内容页中的一个控件,这一点十分有用。

下面是母版页与内容页合并后事件的发生顺序:

1.母版页控件Init事件。

2.内容控件Init事件。

3.母版页Init事件。

4.内容页Init事件。

5.内容页Load事件。

6.母版页Load事件。

7.内容控件Load事件。

8.内容页PreRender事件。

9.母版页PreRender事件。

10.母版页控件PreRender事件。

11.内容控件PreRender事件。

母版页和内容页中的事件顺序对于页面开发人员并不重要。但是,如果您创建的事件处理程序取决于某些事件的可用性,那么您将发现,了解母版页和内容页中的事件顺序很有帮助。

项目步骤说明

1.BaseMasterPage init()//一级验证(登陆,功能url)

2.MasterPage init()//二级验证(功能加载,数据加载)

3.BasePage init()//将加载的数据重新整理为属性,错误日志记录

4.Page init()//页面中的初始化

5.Page Load()

说明:

页面开始执行时,1.先调用MasterPage Init(),而

MasterPage Init() 在调用BaseMasterPage Init().

2.调用Page Init(),而Page Init()在调用BasePage Init()

3.page load()

这样就形成了上面的五步的验证顺序

权限代码实现

第一步:检测登陆和合法Url(BaseMasterPage)

protected void validate()

{

String root = ResolveUrl("~");

root = root.Substring(0, root.Length - 1);//获得网站主目录

if (object.Equals(null, Session[https://www.wendangku.net/doc/859494815.html,erId]))//登陆检测

{

stopCache();

Response.Write("");

}

else

{//功能检测

string url = Request.AppRelativeCurrentExecutionFilePath.TrimStart('~');

IList funList = FunctionAgent.GetFunIdByUrl(url);

if (funList.Count == 0)

{//检测到功能(Url)不存在,给予提示

Response.Write(""); Response.End();

}

else

{

bool status = false;

foreach (FunurlInfo f in funList)

{

IList RolesId = Session[SessionKeys.RolesId] as IList;//获得角色

if (RolesId != null)

{//检测是否有访问的权限

status = FunctionAgent.EqualByRoleIdAndFunId(RolesId,

f.Funid.ToString());

}

if (status) break;//如果存在就进入访问

}

if (!status && Session[SessionKeys.CurrentUrl] != null)

{//没有权限就不能进入

Response.Write(""); }

else

{

if (Session[SessionKeys.CurrentUrl] == null)

{

Response.Redirect("~/Login.aspx");

}

else

{

Session[SessionKeys.CurrentUrl] = url;//将当前页面记录下来

}

}

}

第二步:加载资源和功能菜单加载(MasterPage)

功能菜单加载:

其中TreeControl为用户控件:

private void BindTree()

{

DataSet treeDataSet = null;

IList roleId = Session[SessionKeys.RolesId] as IList;//获得角色

if (roleId != null)

{

if (object.Equals(Session[MoudleName], null))

{

Session[MoudleName] = FunctionAgent.Get2MenuFunList(roleId,

FunId.ToString());

}

treeDataSet = Session[MoudleName] as DataSet;

if (treeDataSet != null)

{

addNodes(tv2Menu.Nodes, treeDataSet, FunId);

}

}

}

private void addNodes(TreeNodeCollection collection,DataSet treeDataSet, int parentNodeID) {

DataRow[] rows = treeDataSet.Tables["menuDataTable"].Select("paranetFunId=" + parentNodeID);//查找当前结点的所有子结点

foreach (DataRow row in rows)

{

//新建一个临时结点

TreeNode node = new TreeNode();

node.Value = row["funId"].ToString();

node.Text = row["urlName"].ToString();

node.NavigateUrl =row["url"].ToString();

string pid = row["url"].ToString();

node.Expanded = true;//默认为展开

//递归加入当前结点的子结点

addNodes(node.ChildNodes, treeDataSet, int.Parse(row["funId"].ToString()));

collection.Add(node);//加入到结点集合中

}

}

加载资源:

protected override void OnInit(EventArgs e)

{

base.OnInit(e);

if (object.Equals(Session[SessionKeys.NodesId], null))

{

IList groupsId = Session[SessionKeys.GroupsId] as IList;

if (groupsId != null)

{

Session[SessionKeys.NodesId] =

ResourceAgent.GetNodeIdsByGroupIds(groupsId);//初始化节点资源

Session[SessionKeys.LinksId] =

ResourceAgent.GetLinkIdsByGroupIds(groupsId);//初始化链路资源

Session[SessionKeys.EquipmentsId] =

ResourceAgent.GetEquipmentIdsByGroupIds(groupsId);//初始化设备资源

Session[SessionKeys.PortsId] =

ResourceAgent.GetPortIdsByGroupIds(groupsId);//初始化端口资源

}

}

}

第三步:将资源转化为属性,和错误记录(BasePage)

protected override void OnInit(EventArgs e)

{

UserId = GetFromSession(https://www.wendangku.net/doc/859494815.html,erId) as string;

NodesId = GetFromSession(SessionKeys.NodesId) as IList;

LinksId=GetFromSession(SessionKeys.LinksId) as IList;

EquipmentsId =GetFromSession(SessionKeys.EquipmentsId) as IList; PortsId =GetFromSession(SessionKeys.PortsId) as IList;

TransTypeIds =GetFromSession(SessionKeys.TransTypeIds) as IList; PageName = Request.RawUrl;

UserIp = https://www.wendangku.net/doc/859494815.html,erHostAddress.ToString();

base.OnInit(e);

}

protected virtual void ShowMessage(DcException dex) //错误处理

{

https://www.wendangku.net/doc/859494815.html,erId = UserId;

dex.PageName = PageName;

https://www.wendangku.net/doc/859494815.html,erIp = UserIp;

if (string.IsNullOrEmpty(dex.Msg))

{

dex.Msg = dex.Message;

}

if (dex.ErrorType == MessageType.Warning)

{

ShowMessage(dex.Msg);

}

else

{

if(dex.Msg.Equals("正在中止线程。") || dex.Msg.Equals("Thread was being aborted.")) {

return;

}

Log.Error(dex.ToString());//记录错误信息

//迁移到错误页面

string errPageUrl = ConfigurationManager.AppSettings["ErrorPageUrl"];

Dictionary dictError = new Dictionary();

dictError.Add("ErrorMsg", dex.Msg);

dictError.Add("PageName", PageName);

SaveToSession(SessionKeys.ExceptionInfo, dictError);

Response.Redirect(errPageUrl);

}

}

第四步,第五步:页面初始化数据,进行绑定(资源管理-EditNodeInfo.aspx为例)(Page):

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

try

{

IList nodeNameList = EquipmentLevelAgent.GetNode(NodesId);//NodesId为BasePage 中的节点资源

NodeDropDownList.DataSource = nodeNameList;

NodeDropDownList.DataTextField = "Name";

NodeDropDownList.DataValueField = "Id";

NodeDropDownList.DataBind();

}

catch (Exception ex)

{

lblMessage.Text = "数据库异常,请稍候再试" + ex.Message; }

}

}

数据库管理员日常工作权限和流程

目录 2........................................................................................................................................... 数据库操作规范:1.................................................................................................................................. 2.数据库关键参数配置:1.1................................................................................................................................. 2.数据库数据提取流程:1.2................................................................................................................................. 2.数据库操作管理制度:1. 3............................................................................................................................. 3 .操作系统帐号管理制度:1. 4................................................................................................................................. 3 .1.5数据库帐号管理制度: 4.2........................................................................................................................................... 应用程序管理规范 ..................................................................................................................................... 4.应用程序发布管理: 2.1 4 ............................................................................................................................................... 数据库备份规范 3..................................................................................................................................... 4 3.1.备份设备物理规划:......................................................................................................................................... 43.2.数据库备份制度: ............................................................................................................................................. 4 3.3.备份数据定义: 1数据库操作规范: 1.1数据库关键参数配置:

关于用户权限的数据库设计

1 设计思路 为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。 1.1 用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联。 用户通常具有以下属性: 编号,在系统中唯一。 ü名称,在系统中唯一。 ü用户口令。 ü注释,描述用户或角色的信息。 1.2 角色 角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述角色信息 1.3 权限 权限指用户根据角色获得对程序某些功能的操作,例如对文件的读、写、 修改和删除功能,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述权限信息 1.4 用户与角色的关系 一个用户(User)可以隶属于多个角色(Role),一个角色组也可拥有多个用户,用户角色就是用来描述他们之间隶属关系的对象。用户(User)通过角色(Role)关联所拥有对某种资源的权限,例如 l 用户(User): UserID UserName UserPwd 1 张三 xxxxxx 2 李四 xxxxxx …… l 角色(Role): RoleID RoleName RoleNote 01 系统管理员监控系统维护管理员 02 监控人员在线监控人员 03 调度人员调度工作人员 04 一般工作人员工作人员…… 从该关系表可以看出,用户所拥有的特定资源可以通过用户角色来关联。 1.5 权限与角色的关系 一个角色(Role)可以拥有多个权限(Permission),同样一个权限可分配给多个角色。例如: l 角色(Role): RoleID RoleName RoleNote 01 系统管理员监控系统维护管理员 02 监控人员在线监控人员

数据中心信息安全管理及管控要求

数据中心信息安全管理及管控要求 2012-02-24 11:29博客康楠 随着在世界范围内,信息化水平的不断发展,数据中心的信息安全逐渐成为人们关注的焦点,世界范围内的各个机构、组织、个人都在探寻如何保障信息安全的问题。英国、美国、挪威、瑞典、芬兰、澳大利亚等国均制定了有关信息安全的本国标准,国际标准化组织(ISO)也发布了ISO17799、ISO13335、ISO15408等与信息安全相关的国际标准及技术报告。目前,在信息安全管理方面,英国标准ISO27000:2005已经成为世界上应用最广泛与典型的信息安全管理标准,它是在BSI/DISC的BDD/2信息安全管理委员会指导下制定完成。 ISO27001标准于1993年由英国贸易工业部立项,于1995年英国首次出版BS 7799-1:1995《信息安全管理实施细则》,它提供了一套综合的、由信息安全最佳惯例组成的实施规则,其目的是作为确定工商业信息系统在大多数情况所需控制范围的唯一参考基准,并且适用于大、中、小组织。1998年英国公布标准的第二部分《信息安全管理体系规范》,它规定信息安全管理体系要求与信息安全控制要求,它是一个组织的全面或部分信息安全管理体系评估的基础,它可以作为一个正式认证方案的根据。ISO27000-1与ISO27000-2经过修订于1999年重新予以发布,1999版考虑了信息处理技术,尤其是在网络和通信领域应用的近期发展,同时还非常强调了商务涉及的信息安全及信息安全的责任。2000年12月, ISO27000-1:1999《信息安全管理实施细则》通过了国际标准化组织ISO的认可,正式成为国际标准ISO/IEC17799-1:2000《信息技术-信息安全管理实施细则》。2002年9月5日,ISO27000-2:2002草案经过广泛的讨论之后,终于发布成为正式标准,同时ISO27000-2:1999被废止。现在,ISO27000:2005标准已得到了很多国家的认可,是国际上具有代表性的信息安全管理体系标准。许多国家的政府机构、银行、证券、保险公司、电信运营商、网络公司及许多跨国公司已采用了此标准对信息安全进行系统的管理,数据中心(IDC)应逐步建立并完善标准化的信息安全管理体系。 一、数据中心信息安全管理总体要求 1、信息安全管理架构与人员能力要求 1.1信息安全管理架构 IDC在当前管理组织架构基础上,建立信息安全管理委员会,涵盖信息安全管理、应急响应、审计、技术实施等不同职责,并保证职责清晰与分离,并形成文件。 1.2人员能力 具备标准化信息安全管理体系内部审核员、CISP(Certified Information Security Professional,国家注册信息安全专家)等相关资质人员。5星级IDC至少应具备一名合格的标准化信息安全管理内部审核员、一名标准化主任审核员。4星级IDC至少应至少具备一名合格的标准化信息安全管理内部审核员 2、信息安全管理体系文件要求,根据IDC业务目标与当前实际情况,建立完善而分层次的IDC信息安全管理体系及相应的文档,包含但不限于如下方面: 2.1信息安全管理体系方针文件

一种通用权限管理方案的设计方案

一种通用权限管理方案的设计方案 分析了权限管理的概念和一些与权限管理容易混淆的概念。提出了一种目前可以应用到绝大多数与权限有关的系统设计中的通用权限管理方案。该方案以角色对用户进行分组,通过用户数据库、角色数据库、权限数据库、用户-权限数据库以及角色-权限数据库来实现权限的分层管理。该设计方案能够由管理员方便的对权限进行设置。通过对角色的权限设置可以达到快速设置权限。通过对用户的权限设置可以达到权限的精确控制。文章最后以某项目为基础对该权限设计方案进行了实现。通过测试,该方案能够很好的对用户权限进行控制,从而提高整个系统的安全性。 标签:权限系统角色数据库 1 权限管理的概念 权限管理是软件系统中最常见的功能之一。所谓权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。尤其是在B/S机构的系统中,由于没有专门的客户端软件系统,所以权限管理就显的尤为重要。如果一个B/S系统的权限管理设计的不好,那么一个“非法用户”就可以轻而易举的获取整个系统的所有本能,包括超级管理员的功能。那么这样的系统还有谁敢使用。 很多人,常将“用户身份认证”、“密码加密”、“系统管理”等概念与权限管理概念混淆。用户身份认证,根本就不属于权限管理范畴。用户身份认证,是要解决这样的问题:用户告诉系统“我是谁”,系统就问用户凭什么证明你就是“谁”呢?对于采用用户名、密码验证的系统,那么就是出示密码。当用户名和密码匹配,则证明当前用户是谁;对于采用指纹等系统,则出示指纹;对于硬件Key 等刷卡系统,则需要刷卡。密码加密,是隶属用户身份认证领域,不属于权限管理范畴。 2 权限管理的设计 2.1 权限管理的对象在一般的系统设计中,权限管理的参于对象包括用户对象、角色(或分组)对象、功能模块对象。角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色。功能模块则对不同的系统来说各不相同,一般在系统设计中最终将其以图形界元素的形式表现出来(比如软件界面上的各个功能按钮)。 2.2 权限管理举例下面我们举例说明2.1中提到的用户、角色、功能三个对象在权限管理中具体应用。表1中列出了某文档管理项目中权限管理的一部分设计表。从中我们可以清晰的区别出这三个对象以及它们的各自作用。

关于用户权限的数据库设计

1设计思路 为了设计一套具有较强可扩展性的用户认证管理,需要建立用户、角色和权限等数据库表,并且建立之间的关系,具体实现如下。 1.1用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联。 用户通常具有以下属性: 编号,在系统中唯一。 ü名称,在系统中唯一。 ü用户口令。 ü注释,描述用户或角色的信息。 1.2角色 角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述角色信息 1.3权限 权限指用户根据角色获得对程序某些功能的操作,例如对文件的读、写、 修改和删除功能,通常具有以下属性: ü编号,在系统中唯一。 ü名称,在系统中唯一。 ü注释,描述权限信息 1.4用户与角色的关系 一个用户(User)可以隶属于多个角色(Role),一个角色组也可拥有多个用户,用户角色就是用来描述他们之间隶属关系的对象。用户(User)通过角色(Role)关联所拥有对某种资源的权限,例如l用户(User): UserID UserName UserPwd 1张三xxxxxx 2李四xxxxxx …… l角色(Role): RoleID RoleName RoleNote 01系统管理员监控系统维护管理员 02监控人员在线监控人员 03调度人员调度工作人员 04一般工作人员工作人员…… 从该关系表可以看出,用户所拥有的特定资源可以通过用户角色来关联。 1.5权限与角色的关系 一个角色(Role)可以拥有多个权限(Permission),同样一个权限可分配给多个角色。例如:l角色(Role): RoleID RoleName RoleNote 01系统管理员监控系统维护管理员 02监控人员在线监控人员

数据库用户管理(用户管理,权限分配)

学习资料:数据库用户管理 SQL Server的安全包括服务器安全和数据安全两部分。服务器安全是指可以SQL Server数据库服务器的登录管理、数据库数据的访问安全等,数据安全则包括数据的完整性、数据库文件的安全性。因此,如果你准备访问SQL Server数据库的数据,你应该具有SQL Server登录帐户和访问数据库的权限。 下面逐一讲解如何创建登录帐户、如何创建数据库用户和如何给用户授权。 一、SQL Server身份验证 在登录SQL Server时,需要选择身份验证的方式,SQL Server支持以下两种身份验证。 Windows身份验证。 SQL Server身份验证。 简单地说,Windows身份验证是使用当前登录到操作系统的用户去登录,而SQL Server身份验证是使用SQL Server中建立的用户去登录。 登录验证通过以后,就可以像管理本机SQL Server一样来管理远程机上的SQL Server 服务。 二、建立登录帐户并赋予权限 与创建数据库一样,建立SQL Server数据库的登录名、用户名,为其赋予权限也有两种方式。 1)使用SQL Server Management Studio建立登录账户并赋予权限 2)使用T-SQL建立登录账户并赋予权限 1.在SQL Server Management Studio中建立登录账户并赋予权限在SQL Server Management Studio中,通常需要进行三步操作。 1)建立SQL Server登录名 在SQL Server Management Studio中,建立登录的步骤如下。 (1)在“安全性”节点下,右击“登录名”,在右键菜单中选择“新建登录名”选项。

数据中心安全管理制度

数据中心安全管理制度 ST-YW-ZD-1.3

目录 一、适用范围 (3) 二、门禁安全管理 (3) 三、机房保安制度 (3) 四、机房消防制度 (4) 五、视频监控管理 (5)

一、适用范围 计算数据中心 二、门禁安全管理 1)机房门禁卡管理系统由专人管理,门禁卡应严格控制,统一调配 2)门禁卡按照一人一卡的原则配置,设置确定的权限,不得借给他人使用 3)门禁必须设有紧急开关按钮,出现紧急情况可以通过击碎紧急按钮玻璃逃生第四条 4)平时不使用的机房门必须从机房内侧反锁,门上用十字封条封死; 5)门禁系统需与消防联动,当消防告警,门禁系统自动失效,机房内人员可以逃生 6)门禁卡必须设置备用卡,由专人保管,在紧急事件中使用 7)门禁系统实行分级授权管理制度,授权相应办公人员的进入级别,并可限制其进入的 区 8)员工进入数据中心及相应办公区域必须使用门禁感应卡 9)门禁感应卡的持有人有责任保管好自己的感应卡,若有遗失,需立即通知管理人员禁 止该丢失卡的使用权限,持卡人在使用中发现问题应立即联系管理人员维修,持卡人若离职或调动,管理人员需将感应卡收回或重新设定使用权限 10)申请办理门禁卡,设定使用权限或者其他人员因遗失申请补办门禁卡,需报机房服务 部批准并发卡,由相关人员设置权限,原则上不为客户提供门禁卡 11)持卡人应刷卡出入权限规定的机房,确保门禁系统的记录完整、真实;相关单位新增 门禁卡或变更门禁卡权限,需专门提出书面申请填写《数据中心门禁权限申请表》,经相关领导申批通过后,由门禁系统管理人员负责核实并制卡 12)数据中心所有门需常闭,即进出后随手关门 三、机房保安制度 1)各岗位保安应着制服,保持仪容整洁、精神状态佳、态度和蔼、认真负责 2)坚守岗位,不擅离职守,因事离开岗位时必须有人代班,无关人员不得进入保安室 3)值班保安严禁睡觉、看小杂志、酗酒、听收音机等做与工作无关的事,监守自盗 4)不定时巡察机房重要区域的安全,防止意外事件的发生 5)发生民事纠纷,应及时劝阻和制止,并及时报告保安队长或综合管理部处理 6)接班后,警具、警械应随身携带,不得交于无关人员玩耍

JAVA用户角色权限数据库设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。 需求陈述 ?不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 ?可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 ?权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。 就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。 ?满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。 关于设计 借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。 我们先来分析一下数据库结构: 首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。如下图:

系统权限管理设计方案(优选.)

OA系统权限管理设计方案 l 不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本的功能。 l 可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。 l 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。 l 满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。 针对OA系统的特点,权限说明: 权限 在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。 权限组 为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。

角色 权限的集合,角色与角色之间属于平级关系,可以将基本权限或权限组添加到一个角色中,用于方便权限的分配。 用户组 将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按职位、项目或其它来实现。用户可以属于某一个组或多个组。 通过给某个人赋予权限,有4种方式(参考飞思办公系统) A. 通过职位 a) 在职位中,职位成员的权限继承当前所在职位的权限,对于下级职位拥有的权限不可继承。 b) 实例中:如前台这个职位,对于考勤查询有权限,则可以通过对前台这个职位设置考勤查询的浏览权,使他们有使用这个对象的权限,然后再设置个,考勤查询权(当然也可以不设置,默认能进此模块的就能查询),则所有前台人员都拥有考勤查询的权利。 B. 通过项目 a) 在项目中,项目成员的权限来自于所在项目的权限,他们同样不能继承下级项目的权限,而对于项目组长,他对项目有全权,对下级项目也一样。 b) 实例中:在项目中,项目成员可以对项目中上传文档,查看本项目的文档,可以通过对项目设置一个对于本项目的浏览权来实现进口,这样每个成员能访问这个项目了,再加上项目文档的上传权和查看文档权即可。

数据中心机房相关管理人员要求及制度

为了能够高效的进行机房管理,机房管理人员应具有一定的技术能力和基本的设备维护经验。 机房管理人员的基本岗位职责如下: 1、负责机房设备的日常管理,做好日常巡检工作,包括配电、空调、消防等设施以及网络设备、服务器、存储等设备的检查工作; 2、机房以及部门所属各种资产的管理,做好设备清点、分类、统计、标示等工作; 3、负责安排机房设备维修工作,协调相关设备维修人员进行维修,安排好相关维修工作; 4、对机房各类设备的运行情况进行分析,制定预防和常用方案。 5、对机房各类设备上所运行的系统、服务进行管理和配置,满足办公部门的IT服务需求。 相关技术能力和经验要求如下: 1、计算机及相关专业,本科及以上学历;两年以上相关工作经验,最好有机房管理经验者。 2、熟悉winsever、linux等操作系统的硬件维护、网络和服务配置。 3、熟悉VM和相关虚拟化技术; 4、熟悉Oracle数据库; 5、熟悉存储技术,熟悉存储光纤交换机的配置; 6、熟悉H3C核心设备及接入网络设备的基本配置和命令; 注:以上技术能力和经验并不要求某一管理人员全部具备或精通,各个机房管理人员技术能力可各有侧重,互补配合进行机房管理。 为了使机房日常维护工作制度化、规范化,对于数据机房的管理,要求制定以下机房管理维护制度(参考),以下重要制度应上墙: 《机房现场管理制度》 《机房值班制度》 《机房突发事件应急预案》 《机房交接班制度》 《外来人员操作管理制度》

《机房现场管理制度》参考 一、 机房维护人员应注意监控设备运行情况,发现故障及时处理,对于重大故障,在对故障进行处理的同时要按传报流程向上汇报。 二、 机房维护人员应定时对机房环境进行巡检,并根据表格做好相应记录;机房内温度应保持在23±3℃,相对湿度在40%~60%,机房照明应有应急备用。如遇到通信保障期间、电源变化、气候恶劣等情况时,应加强巡回检查。 三、 机房维护人员应对出入机房人员身份进行确认,不允许无关人员进入机房,对于得到主管部门同意进入机房的外来人员,机房维护人员应督促其在《机房出入登记簿》上登记,并督促其遵守机房各项规章制度。外来人员进入机房工作,机房维护人员应要求其出示工单或者上级部门通知。 四、 定期检查机房各消防设备情况,如消防设备有异常情况,需及时向上级汇报。 五、 机房内非特殊需要,严禁使用明火,要动用明火必须得到主管领导和上级安全部门的同意。 六、 机房内各种图纸资料、文件、工具仪表未经允许不准擅自带出机房,使用后归还原处。 七、 机房内系统的网络拓扑图和各设备所配置的资料均属于保密范围,未经上级部门同意,外来人员不得查阅、复制。 八、机房内严禁在终端和PC机上运行游戏程序及其他与工作无关的程序。

数据库管理员常工作权限和流程

目录 1数据库操作规范: 1.1数据库关键参数配置: ·新项目或系统、数据库填写系统上线更新记录表; ·mysql数据库应用服务端口设定,默认实例服务端口是3306,其它实例需注意服务端口值; ·数据库内存使用是实际物理内存三分之二,如果是双机系统建议不要超过二分 之一; ·严禁按照Internet上查找的资料中只言片语,对数据库进行调整; 1.2数据库数据提取流程: 1业务部门相关人员填写“数据申请单”; 2部门负责人签字; 3DBA依情况操作; 4需求申请部门验收。 1.3数据库操作管理制度: ①业务部门要求的数据库操作需要有书面审批流程,DBA应保留原始文件一份; ②业务部门所填写的数据申请表单,一定需要相关负责人签字后方可执行。 ③在做数据库更改操作前,必须和业务人员核对业务逻辑,在完全清楚业务逻辑后进 行数据库操作; ④所有数据库更改操作,必须先进行测试,并将操作放在事物中,分步执行; ⑤保留重要操作的脚本、操作前数据、操作过程结果,以便日后查对; ⑥在完成操作后,要给操作需求方最终结果报告,使需求方可以及时核对; ⑦对于一些核心机密数据,需要遵守公司相关的保密协议,不能向外泄露;

⑧注意维护数据库服务器的硬盘空间,及盘阵上磁盘状态; ⑨按流水记录数据操作日志,作为以后查对凭证; ⑩以后有关数据库手工操作之前,一定通知所有应用程序开发人员,以便评估、保存操作结果; ⑾DBA个人使用的计算机应严格管理,尽可能不要在办公区外上网,更不要浏览和工作无关的网站,一定要安装防毒套装软件,避免感染病毒和木马, 严禁安装与工作无关的应用软件; ⑿当数据库需要调整时,严禁按照网上查找的资料操作数据库,一定是先查看官方完整文档或权威文档,通过严格测试,书写完整报告,经评估后,填写 数据库维护申请表,获审批方可操作; ⒀严禁在其它地方使用工具连接生产数据库,进行操作; ⒁操作流程:填写数据申请单 ·业务部门业务人员提出申请; ·业务部门负责人审核; ·运营DBA执行,操作完成后,需在“DBA操作结果”中写明操作语 句和影响记录条数; ·运营核查; ·业务部门任务申请人员检验操作结果,并签字确认; ·单据由运营部门保留。 1.4操作系统帐号管理制度: ①在数据库服务器、关键应用服务器上,只能有数据库DBA人员的帐号,开发人 员需要介入时,填写开发人员使用数据库申请单; ②在操作系统中需要启动本地安全策略中有关帐户管理的安全策略,策略如下: ·启动密码必须符合复杂性要求; ·密码长度最小值6个字符; ·帐户锁定时间10分钟; ·帐户锁定阀值5次; ③每两个星期检查一次操作系统日志; 1.5数据库帐号管理制度: ①应用程序帐号权限需要做严格限制,对不同应用需求使用不同权限和操作范围帐号, 要有部门负责人确认; ②在不同应用服务器上相同应用程序应使用不同数据库访问帐号; ③帐号密码需要有复杂性要求(字母、数字14位以上); ⑤所有帐号名称、访问权限、应用程序名称必须记录在案(如:表格形式); ⑥在防火墙上严格限制数据库端口访问的IP地址,只有正常对外服务的应用服务器 IP可以访问相关数据库; ⑦数据库超级用户权限使用严格限制;

2、数据中心工作人员岗位职责

数据中心工作人员岗位职责 一、数据中心工作人员全面负责数据中心的日常使用、安全、清扫和管理等工作;负责网络、软件、设备的管理和维护。 二、数据中心工作人员应按照相关规定,严格履行职责,应加强日常学习和交流,及时掌握网络建设和管理最新技术,加以运用,确保操作水平和技能逐步提高。 三、数据中心工作人员应熟练掌握该数据中心各种设备的技术参数、性能指示和使用注意事项,应全面了解和掌握各系统设备的连接布线方式和易出现问题的重要环节,出现问题及时解决。 四、数据中心工作人员在使用各系统设备的过程中,应严格按照设备使用说明书和操作规程,操作各种设备,不得随意损坏设备,确保不发生因操作失误造成设备损坏的事件。 五、数据中心工作人员应强化网络日常建设与管理,定期检修和维护各种设备、网络信息资源等,确保网络正常运行。 六、数据中心工作人员应加强各系统设备的日常管理,不得随意变更、私接或挪用各种设备,如因工作需要必须变更和使用的,应事前请示经理同意后,方可实施。 七、数据中心工作人员应强化网络安全管理,按照相关规定,设定密码和各种权限,并要牢记;应定期查杀网络病毒、木马,以及做好防黑客攻击等工作,以确保网络安全运行;有权利阻止无关人员进入,对进出数据中心的人员或设备要实时登记,确保数据中心设施设备安

全。 八、数据中心工作人员应妥善保管数据中心内各种设备的使用说明书、操作规程,以及设备相关的软、硬件设备等,确保出现问题能及时检修。 九、数据中心工作人员应加强数据中心日常清洁工作,确保地面、操作台、各种设备表面日常清洁无灰尘,并做好设备防尘、防静电及室内恒温等工作;禁止在数据中心内吸烟、使用设备以外电器等。 十、数据中心工作人员有义务对各科室网络和计算机等设备进行维修和维护,并及时对各科室提出的问题给予答复,确保全局网络正常运行。

用户、角色、权限数据库设计

用户、角色、权限数据库设计2010-02-08 15:20:32 分类:Linux 权限管理 权限管理,主要是人员和权限之间的关系,但是如果让人员直接和权限打交道,那么权限的赋值、权限的撤销以及权限的变动会非常的麻烦,这样引入了,角色,给角色赋权限,然后给用户分配角色。 这个设计主要涉及6张表, 用户表,(用于存储用户的所有信息) 权限表,(用于存储所有的权限) 角色表,(用于存储所有的角色) 用户和角色的关联表,(用户和角色的关联) 角色和权限的关联表,(角色和权限的关联) 菜单表,(里面关联了权限,主要是现实用的) 用户表 代码 CREATE TABLE[dbo].[Users]( [UserID][int]IDENTITY(1,1) NOT NULL, [UserName][nvarchar](50) primary key,--帐号 [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) ) 权限表: CREATE TABLE[dbo].[Permission]( [PermissionID]int identity,

[Description][nvarchar](50) --权限名称 ) 角色表: CREATE TABLE[dbo].[Roles]( [RoleID][int]IDENTITY, [Description][nvarchar](200)--角色名称 ) 用户和角色的关联表: 代码 CREATE TABLE[dbo].[UserRoles]( [UserID][int]NOT NULL,--用户ID [RoleID][int]not null ,--权限ID CONSTRAINT[PK_UserRoles]PRIMARY KEY CLUSTERED ( [UserID]ASC, [RoleID]ASC )WITH (IGNORE_DUP_KEY =OFF) ON[PRIMARY] ) ON[PRIMARY] 角色和权限的关联表: 代码 CREATE TABLE[dbo].[RolePermissions]( [RoleID]int NOT NULL,--角色ID [PermissionID]int NOT NULL,--权限ID CONSTRAINT[PK_RolePermissions]PRIMARY KEY CLUSTERED ( [RoleID]ASC, [PermissionID]ASC )WITH (IGNORE_DUP_KEY =OFF) ON[PRIMARY]

数据库管理员岗位的工作职责描述

数据库管理员岗位的工作职责描述 数据库管理员需要对数据库运行状况进行监控,及时对故障进行处理,并分析故障原因,记录解决文档。下面是小编为您精心整理的数据库管理员岗位的工作职责描述。 数据库管理员岗位的工作职责描述1 职责: 1、维护所有数据库稳定运行,关注数据库集群整体运行情况,持续发现和解决潜在的问题; 2、对MySQL数据库进行容量规划、架构设计,提高业务高可用性和容灾能力; 3、负责开发部门数据库支持,SQL优化,数据库整体性能优化,以及为开发人员提供数据库相关技术支持和培训; 4、负责研发和制定数据库技术方案,分表分库的策略,数据库迁移等方案; 5、数据库性能监控以及优化,故障诊断和排除;

6、数据库备份,恢复策略的制定,实施以及维护,数据库容灾演练等 7、负责MongoDB集群部署、优化及性能监控保证高可用 8、使用Shell或Python等脚本语言,负责数据库周边工具及自动化开发 9、负责数据库上线流程优化与文档完善。 任职要求: 1. 三年以上大中型互联网公司DBA工作经验; 2. 熟悉MySQL及MongoDB数据库搭建与维护管理; 3.熟悉MySQL及MongoDB数据库管理、备份及性能调优经验,能快速定位数据库出现问的关键点; 4.具备Linux系统管理与维护经验,对数据库相关调优参数有所了解; 5. 熟悉并精通一门脚本语言,如Shell,Python等脚本语言; 6. 具备海量数据库维护经验; 7. 深入理解数据库原理 8. 精通SQL优化原理及实战经验。

数据库管理员岗位的工作职责描述2 职责: 1, 精通SQL语句,根据应用业务人员的需求,编写相关SQL 语句,满足业务的需求; 2, 根据项目的需求配合开发人员对数据库、表、数据字典进行分析与设计; 3, 根据业务需求负责数据库存储过程、包、触发器的编写、排错、优化; 4, 了解数据库的规划、安装、备份、恢复,可以辅助运维DBA做简单的日常维护操作; 5, 参与业务需求调研和ETL设计开发。 岗位要求: 1, 计算机、统计学、软件工程、应用数学等相关专业,统招本科及其以上学历; 2, 熟练掌握数据库应用设计与开发的专业知识、数据结构设计,精通存储过程和函数的优化,具备较强的SQL编写功底和清晰的逻辑思维能力;

食堂管理系统数据库设计

一、需求分析 1.系统分析 随着时代的进步,如今各个服务行业也都逐渐发展壮大起来,尤其是食堂服务业,其在服务范围、服务数量和服务内容上都有着非常大的膨胀幅度,因此如何对如此复杂而频繁的服务活动进行管理就属于“食堂管理”的内容。其主要包括:职员资料管理、物品管理、消费内容管理、席位管理、客户评价管理,工资管理等,它是现代食堂管理中的一个重要组成部分。 2.功能需求分析 “食堂管理” 包括很多项目,以前食堂管理人员要记录大量的用户消费内容,然后通过计算器进行一系列的加减乘除运算,最后得出一位顾客的“应付金额”,这样做的效率和准确度可想而知。如果使用计算机来实现对食堂服务业的智能管理,从选择菜、酒水、主食,到计算“应付金额”,最后到打印消费内容,计算机都可以很准确、很快捷地进行处理,这些都是“食堂管理系统”的功能。一个完善的“食堂管理系统”可以很好地管理食堂服务业的各项内容,这样不仅能更好地服务顾客,而且可以为经营者创造更大的利润。 针对每部分的具体功能我们又做了如下的详细分析:

二、涉及的表 职员资料 物品表 席位表

销售记录 评价情况 工资表

SQL 命令 创建数据库 create database 食堂管理系统 on primary (name= stglxt_data,'e:\stglxt_data.mdf') log on (name=stglxt_log1,'e:\stglxt _log.ldf') 创建表 create table 职员资料 (职员编号char(6) not null primary key check(职员编号like'[0-9][0-9][0-9][0-9][0-9][0-9]'), 姓名varchar(20) not null, 职位varchar(20) not null, 性别char(2) not null check(性别='男' or 性别='女') default '男', 民族varchar(8) null default '汉族', 出生日期datetime not null, 身份证号码char(18) not null unique, 婚姻状况char(4) not null check(婚姻状况='已婚' or 婚姻状况='未婚') default '未婚', 联系电话varchar(11) not null unique, 备注varchar(30) ) create table 物品表 (物品编号 char(6) not null primary key, 物品名字 varchar(20) not null, 所属类型 char(4) not null check(所属类型='主食'or 所属类型='酒水' or 所属类型='其他') default '主食', 价格 money not null, 是否售馨 char(2) not null check(是否售馨='是' or 是否售馨='否') default '否', 品牌 varchar(30), 备注 varchar(30) ) create table 席位表 (席位号char(6) not null primary key, 负责人编号char(6) not null foreign key references 职员资料(职员编号) on update cascade on delete cascade, 人数int not null, 状态char(4) not null check(状态='使用' or 状态='预定' or 状态='空闲') default '空闲', 日期datetime not null, 备注varchar(30)

数据中心建设与运行管理

数据中心建设与运行管理 2010年07月26日 《数据中心建设与运行管理》 作者:林小村主编马玉林翁小云副主编(2010年04月第1版第1次) 科学出版社SCIENCE PRESS https://www.wendangku.net/doc/859494815.html, 北京东黄城根北街16号(100717) 内容简介 本书旨在为推动我国企业(机构)数据中心的发展而献出微力。《数据中心建设与运行管理》介绍了数据中心建设和管理的具体做法和体会,全面阐述了数据中心建设的规划与基本要求。全书共12章,包括:数据中心概述、数据中心总体规划、数据中心机房、数据中心网络系统、数据中心主机和存储系统、数据规划和数据库设计、数据中心应用支撑平台、数据中心应用系统、数据中心安全系统、数据中心容灾备份系统、数据中心建设管理、数据中心运行管理。 《数据中心建设与运行管理》观点前瞩、面向应用、深入浅出、图文并茂、重于实用,以数据中心的规划为主线,涵盖了数据中心系统工程全过程、全方位、多目标的全部内容。

《数据中心建设与运行管理》可供企业(机构)信息化管理部门、各类数据中心的建设与管理人员、技术人员、各级信息系统工程建设单位等参考,也可作为工科院校相关专业师生的辅导材料。 P2,互联网接入服务提供商ISP主要为各机构单位或个人提供互联网接入服务,同时还提供公共服务器空间租赁,实现电子邮件通信、网络信息检索等功能;有的单位则将自己的WEB服务器存放在ISP所在地,分享ISP所租用的线路,以降低成本。无论是租用ISP的服务器空间还是委托ISP管理WEB服务器都是Web hosting 模式(空间租用、主机托管)。在ASP模式中,各经济组织将基于WEB技术的应用交由ASP运营商托管,又叫做Application Hosting 模式。 P7,数据中心分类:企业数据中心(Corporate/Enterprise Data Center)、互联网数据中心(Internet Data Center)。 P38,数据交换平台 数据交换平台时数据中心数据与其他应用系统沟通的桥梁,是进行数据交换的基站。数据交换平台负责从各个业务系统采集数据,对数据进行清洗与整合,按照数据中心建设标准规范数据,形成核心数据库,并提供给其他应用系统使用。

权限的表设计

基于RBAC的权限分配: 在做权限分配时:首先需要几张表。见下图 用户表 角色表:

用户角色表: 角色权限表:

struts2 角色权限filter(过滤器)和interceptor(拦截器) 分类:mvc框架-struts22012-12-23 11:27 358人阅读评论(0) 收藏举报 Struts2项目通过使用Struts的if标签进行了session判断,使得未登录的用户不能看到页面,但是这种现仅仅在view层进行,如果未登录用户直接在地址栏输入登录用户才能访问的地址,那么相应的action还是会执行,仅仅是不让用户看到罢了。这样显然是不好的,所以研究了一下Struts2的权限验证。 权限最核心的是业务逻辑,具体用什么技术来实现就简单得多。 通常:用户与角色建立多对多关系,角色与业务模块构成多对多关系,权限管理在后者关系中。 对权限的拦截,如果系统请求量大,可以用Struts2拦截器来做,请求量小可以放在filter中。但一般单级拦截还不够,要做到更细粒度的权限控制,还需要多级拦截。

不大理解filter(过滤器)和interceptor(拦截器)的区别,遂google之。博文中有介绍: 1、拦截器是基于java的反射机制的,而过滤器是基于函数回调。 2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。 3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能。 5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。 为了学习决定把两种实现方式都试一下,然后再决定使用哪个。 权限验证的Filter实现: web.xml代码片段 1 2 3SessionInvalidate 4filter.SessionCheckFilter 5 6checkSessionKey 7loginName 8 9 10redirectURL 11/entpLogin.jsp 12 13 14notCheckURLList 15 /entpLogin.jsp,/rois/loginEntp.action,/entpRegister.jsp,/test.jsp,/ rois/registerEntp.action 16 17 18 19

相关文档