



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 管理信息系统的权限设计和实现 李晓征Summary:基于角色的访问控制是一种通常用于指派用户适当角色的模型,它针对企业或组织的策略,授权用户在管理信息系统(MIS)的使用权限。本文描述用户(User)-角色(Role)-权限(Permission)在管理信息系统权限管理的要素,讲解关于基于角色的访问控制(RBAC)模型,并以C#.NET代码为实例,提出实现模型的方法。Keys:RBAC 角色 权限 C#.NET中图分类号:G203 :B :1673-8454(2009)19-0042-02一、RBAC基本概念和模型基于角色的访问控制(Role-based Access Control,简称R
2、BAC)已经成为解决管理信息系统的统一资源访问控制的有效方法,它替代了传统的自主型访问控制和强制访问控制方法。在RBAC中,权限与角色,角色与用户之间通过联结的关系,从而产生用户的权限。这极大地简化了系统的管理权限。RBAC两大特征是:减小授权管理的复杂性,降低管理开销;灵活地支持企业或组织的安全策略,并对系统的变化有很大的伸缩性。信息系统中的用户、角色、权限及系统资源的基本概念如下:(1)用户(User):与角色相关,用户要拥有对某种资源的权限,必须通过角色去关联。(2)角色(Role):可以操作某些资源的权限集合。通过给用户赋予不同的角色,对成员的多职能进行表达,提供约束用户不同权限范围的
3、依据。角色作为用户与权限的代理层,定义权限和用户的关系,所有的授权应该给予角色而不是直接给用户。(3)权限(Permission):是指与资源相联系的权限。权限是绑定在特定的资源实例上的,比如在内容管理系统(CMS),有“文章的发布权限”,这就表明,该权限是一个发布权限,而且是针对文章这种资源的一种发布权限。权限包括系统定义权限和用户自定义权限。用户自定义权限之间可以指定排斥和包含关系(如:发布、修改、删除、管理四个权限,管理权限包含前三种权限)。(4)资源(Resource):就是信息系统的资源,比如新闻、文档等各种可以被提供给用户访问的对象。系统资源是一个树形的结构,任何一个节点都是一个资
4、源,一个资源节点可以与若干指定权限类别相关,可定义是否将其权限应用于子节点。如图1所示,通过一定的约束关系及用户的角色定义、角色的权限赋值,实现用户对数据和资源的访问权限。一个用户是一个人或一个自治的代理(agent),一个角色是一项在组织中的工作功能或工作头衔。而权限是对系统中一个或多个对象(object)的特定访问模式的许可或执行某些动作的特权。如果xy,那么角色x就继承了角色y的权限,x的成员也意味着是y的成员。每次会话(session)把一个用户和可能的许多角色联系起来。一个用户可以有一个或多个角色,一个角色可以有许多用户。类似地,一个角色可以有多个权限,同一个权限可以被指派给多个角色
5、。每个会话把一个用户和可能的许多角色联系起来,一个用户在激发他或她所属角色的某些子集时,建立了一个会话,用户可用的权限是当前会话激发的所有角色权限的并集。每个会话和单个用户关联,这个关联在会话的生命期间保持常数。一个用户在同一时间可以打开多个会话,每个会话可以有不同的活动角色。会话的概念相当于传统的访问控制中主体(subject)的标记。二、RBAC模型的数据库表设计通过对RBAC模型的分析,可以知道RBAC引入了角色的概念,使得用户和权限分离,从而减少了权限管理的复杂度,可更加灵活地支持安全策略。同时,我们引入资源(Resource)概念,可以对权限进行分门别类,一个资源可以对应多个权限。在
6、数据库表设计中,我们总共引入了六个表(如图2 所示E-R图)和一个视图,分别是用户表、角色表、权限表、资源表、用户-角色表、角色-权限表及用户-角色-权限视图。(1)用户表(User):保存用户基本信息,包括用户编号(主键pkid),用户名称,用户密码,用户所在部门等其他信息。(2)角色表(Role):保存角色编号(主键pkid),角色名称,角色说明等信息。(3)权限表(Permission):保存权限编号(主键pkid),权限名称,权限说明,权限所在资源等信息。(4)资源表(Resource):保存资源名称(主键pkid),资源名称等信息。(5)用户-角色表(User_Role):保存角色编
7、号,角色编号,这两个字段作为表的主键。(6)角色-权限表(Role_Permission):保存角色编号,权限编号,这两个字段作为表的主键。(7)用户-角色-权限 (View_U_R_P)视图:创建视图是为了提高表之间的联结查询效率,视图里的一条记录反映了一个用户所对应的一个权限,当用户的角色发生改变时,他所对应的权限也发生改变。创建视图View_U_R_P的SQL代码:CREATE VIEW View_R_U_PASSELECtrole.pkid, , user_role.user_pkid, role_ permission.role_pkid, permission.n
8、ame AS permission_name, AS role_name, permission.resource_pkid, permission.pkid AS permission_pkid, role_permission.permission_rangeFROMrole INNER JOIN role_permission ON role.pkid = role_permission.role_pkid INNER JOINuser_role ON role.pkid=user_role.role_pkid INNER JOINpermission ON role
9、_permission.permission_pkid = permission.pkid三、利用C#.NET实现信息管理系统的权限控制通过对RBAC的模型分析和数据表定义,我们容易得到对用户操作权限进行判断的方法。用户在对信息系统的某个功能模块操作时,首先获取该功能模块所对应的权限编号(permission_pkid)和用户登录系统时创建会话(Session)的user_pkid,利用这两个值判断用户是否有权限操作。下面我们以判断用户是否有权限删除新闻为实例,利用C#.NET实现一个简单的权限控制。在用户点击“删除新闻”按钮时,我们触发服务端控件的事件(Event):protected vo
10、id ButtonDelete_Click(object sender, EventArgs e)/判断是否有删除新闻权限String permission_pkid = 10;/假设删除新闻所对应的permission_pkid为10String user_pkid = Session“user_pkid”.ToString;/获取用户登录后的Session中的user_pkid值bool have_permission = Sql.PubClass.CheckSQL(select * from View_U_R_P where user_pkid= + user_pkid + and pe
11、rmission_pkid= + permission _pkid);if (have_permission = false)Response.Write(“”);/弹出提示没有权限的对话框else/删除新闻操作,代码略去。在以上代码中,CheckSQL是数据库操作类SQL.PubClass中的一个成员函数,通过数据访问的封装,很大程度上简化了信息系统编程代码。函数CheckSQL返回的是布尔值(boolean),通过传入sql查询语句,判断是否有获取到值,如果有则返回值为true,否则为 false。四、结束语本文就RBAC的模型进行分析,提出简单实现模型控制的方法。又因权限设计必须考虑多方面的要求,比如角色的继承、权限的互斥等,所以在模型中引入了限制(Constraints),实现一套完整的权限设计方法。Reference:1Sandhu R S, Coyne E J, Feinstein H L, et al. Role-based access control modelsJ.IEEE Co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋租赁合同协议书范文
- 高效农业大棚种植基地承包与研发合同
- DB32/T 4395-2022小麦土传病毒病病原检测技术规程
- DB32/T 4186-2022企业信用管理规范
- DB32/T 4012-2021社会救助联动工作规范
- DB32/T 3882-2020黄蜀葵栽培与加工技术规范
- DB32/T 3831.2-2020妇幼健康信息平台共享数据集应用规范第2部分:儿童保健
- DB32/T 3761.55-2022新型冠状病毒肺炎疫情防控技术规范第55部分:公路服务区
- DB32/T 3628-2019木霉固态菌种生产技术规程
- DB32/ 4576-2023南四湖流域(江苏区域)水污染物综合排放标准
- 2025至2030年中国智能学习机行业投资前景及策略咨询研究报告
- (高清版)DG∕TJ 08-7-2021 建筑工程交通设计及停车库(场)设置标准
- 教育咨询保密协议书
- 无房无车离婚协议书
- 南师附中高三数学备忘录及答案详解
- 2024年湖北省中考地理生物试卷(含答案)
- 巴蜀文化(课堂PPT)课件
- 质量部组织架构
- 工学结合一体化课程教学设计的编写(课堂PPT)
- 电气装置安装工程接地装置施工及验收规范——50169-2006
- 水电站自动化运行专业术语
评论
0/150
提交评论