权限管理与设计课件_第1页
权限管理与设计课件_第2页
权限管理与设计课件_第3页
权限管理与设计课件_第4页
权限管理与设计课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6权限管理的设计与实现权限管理与设计探讨任何Application都应有权限管理子系统DBMS的权限管理是权限管理的典范DBMS权限管理策略适用于大多数App的权限管理本章首先讲述DBMS的权限管理策略然后讨论DBMS权限管理策略数据模型设计和实现本章的目标掌握DBMS的权限管理策略本章是一个数据库设计与实现的综合案例,希望通过一个完整子系统数据模型的设计和实现,理解、体会和掌握数据模型的设计和实现方法2023/7/171精选课件6权限管理的设计与实现本章内容DMBS的权限管理DMBS权限管理的概念模型设计DMBS权限管理的逻辑模型设计1、E-R图转换为表并进行必要的合并2、优化逻辑模型DMBS权限管理的物理模型设计2023/7/172精选课件6.1DMBS的权限管理本节要点:DBMS权限的分类DBMS的身份管理授权与回收权限2023/7/173精选课件6.1权限分类权限的分类系统权限 administrator,createtable,connect…针对关系(table/view)的权限 select,update,delete,insert… 例如:selectons针对属性/属性组的权限 select,update,delete,insert… 例如:select(sno,sname)ons没有关于元组的权限,不能基于元组授权SSnoSnameDeptS1甲计S2乙软S3丙软S4丁计2023/7/174精选课件6.1身份标识数据库系统的身份标识用户user角色role用户和角色的关系连接使用数据库,必须以一个特定的用户身份不能使用role身份直接连接使用数据库一个用户可同时具备多个角色一个角色可以为多个用户拥有角色可以拥有角色角色拥有关系可以传递权限可以授予用户或者角色用户拥有授给本用户的所有权利,以及本用户具有的角色的所有权利每个用户对自己模式下的对象(表,视图…)拥有属主权(owner)2023/7/175精选课件6.1身份管理用户管理创立用户: createuserusernameidentifiedbypassword;删除用户:dropuserusername;角色管理创立角色:createrolerolename;删除角色:droprolerolename;用户和角色关系的管理赋予用户角色:grantrole1tou1;撤销用户角色:revokerole1fromu1;2023/7/176精选课件6.1授权:grant授权grantprivilegetoidentity(user/role)例如:u1将s(sno,sname)的查询权授予u2和role1 grantselect(sno,sname)onstou2,role1;转授权限:withgrantoption u1:grantselectonstou2; //u2拥有了selects权,无转授权权 u2:grantselectonstou3;//不能成功 u1:grantselectonstou4withgrantoption; //u4拥有了selects权,并有转授权权 u4:grantselectonstou5; //成功,u5拥有了selects权2023/7/177精选课件6.1权限回收:revoke权限回收revokerevokeprivilegefromidentity(user/role);例如,u1:revokeselectonsfromu2;转授的权力与回收转授权人的权力被回收时,其转授的权力随之被回收例如: u1:grantselectonsctou2withgrantoption; u2:grantselectonsctou3; u1:revokeselectonscfromu2; //u2权力被回收后,u3不再具有selectsc权2023/7/178精选课件6.2权限管理的概念模型设计DBMS权限管理的概念模型设计你在一个DBMS开发公司工作,负责进行DBMS权限管理子系统的开发工作请根据DBMS的权限管理要求,完成权限管理子系统概念模型的设计2023/7/179精选课件6.2权限管理的概念模型设计DBMS权限管理概念模型设计参考方案(一)思考:该方案有哪些缺乏?ISA角色用户具有身份具有权限拥有对象IidpasswordpidonamepnameoidIname2023/7/1710精选课件6.2权限管理的概念模型设计DBMS权限管理概念模型设计参考方案(二)grantergrantedISA角色用户具有身份具有权限拥有对象GrantoptionIidpasswordpidonamepnameoidIname2023/7/1711精选课件6.2权限管理的概念模型设计参考方案(一)vs参考方案(二)参考方案(一)没有描述谁进行的授权参考方案(二)是一个比较理想的方案关于后续讨论为了方便讨论,以下我们采用方案一采用方案一,即假设我们不考虑权力由谁授予采用方案一,仅仅是为了后续讨论的方便思考:如果不使用继承,E-R会如何?(假设不考虑权力由谁授予)2023/7/1712精选课件6.2权限管理的概念模型设计DBMS权限管理概念模型设计参考方案(三)一种不使用继承的方案角色用户具有具有权限拥有对象UIDpasswordpidonamepnameoidUnameRidRname拥有2023/7/1713精选课件6.2权限管理的概念模型设计DBMS权限管理概念模型设计参考方案(四)另一种不使用继承的方案身份具有权限拥有对象IidpasswordpidonamepnameoidInametype2023/7/1714精选课件6.2权限管理的概念模型设计假设不考虑权力由谁授予,思考:方案一、三、四,各有什么优缺点?哪个方案更适宜?你更愿意选择哪个方案?2023/7/1715精选课件6.3权限管理的逻辑模型设计逻辑模型设计步骤6.3.1E-R图转换为表并进行必要的合并6.3.2逻辑模型优化转换、设计理解、表达现实世界概念模型:E-R图逻辑模型:DBSchema2023/7/1716精选课件6.3.1E-R关系模式假设DBMS权限系统概念模型设计采用方案(一)练习:请将E-R图,转换逻辑模型思考:继承关系,如何转换更适宜?ISA角色用户具有身份具有权限拥有对象IidpasswordpidonamepnameoidIname2023/7/1717精选课件6.3.1E-R关系模式参考方案(一)实体转换的关系,父子分别建表Identity(iid,iname)User(iid,password)Role(iid)Privilege(pid,pname)Object(oid,oname)联系转化的关系UR(u-iid,r-iid)RR(iid,has-iid)POI(pid,oid,iid)思考:表role(iid)可以省略吗?2023/7/1718精选课件6.3.1E-R关系模式参考方案(二)实体转换的关系,只为child建表User(iid,iname,password)Role(iid,iname)Privilege(pid,pname)Object(oid,oname)联系转化的关系UR(u-iid,r-iid)RR(iid,has-iid)POU(pid,oid,iid)POR(pid,oid,iid)思考:POU和POR能合并吗?2023/7/1719精选课件6.3.1E-R关系模式参考方案(三)实体转换的关系,只为parent建表Identity(iid,iname,password,type)Privilege(pid,pname)Object(oid,oname)联系转化的关系II(iid,has-iid)POI(pid,oid,iid)思考:表role(iid)可以省略吗?2023/7/1720精选课件6.3.1E-R关系模式思考一:逻辑模型一、二、三,哪一个更适宜?如果你是设计人员,你更愿意选择哪个方案?思考二:逻辑模型二,和概念模型三,有什么关系?逻辑模型三,和概念模型四,有什么关系?你能总结一下,当有继承关系时,概念模型到逻辑模型的转化方法吗?2023/7/1721精选课件6.3.1表的合并表合并的原那么二元m:1联系转化成的表可以和多端实体转化成的表进行合并其它表之间不能机械合并权限系统E-R图转换成的表的合并本逻辑模型无表可以机械合并2023/7/1722精选课件6.3.2逻辑模型优化逻辑模型设计步骤1、E-R图转换为表并进行必要的合并本步可以按照机械方法完成2、逻辑模型优化本步无具体可行的机械方法主要依靠设计人员的经验和能力逻辑模型优化本节针对逻辑模型方案一,进行优化转换、设计理解、表达现实世界概念模型:E-R图逻辑模型:DBSchema2023/7/1723精选课件6.3.2逻辑模型优化思考:针对如下逻辑模型方案一,可以如何优化?Identity(iid,iname)User(iid,password)Role(iid)Privilege(pid,pname)Object(oid,oname)UR(u-iid,r-iid)RR(iid,has-iid)POI(pid,oid,iid)2023/7/1724精选课件6.3.2逻辑模型优化优化思路一:考虑减少表能去掉表Role(iid)吗?如何去掉?Identity(iid,iname)User(iid,password)Role(iid)Privilege(pid,pname)Object(oid,oname)UR(u-iid,r-iid)RR(iid,has-iid)POI(pid,oid,iid)思考:是去掉好,还是原来好?2023/7/1725精选课件6.3.2逻辑模型优化优化思路一:考虑减少表去掉表Role后的逻辑模式Identity(iid,iname,isrole)User(iid,password)Privilege(pid,pname)Object(oid,oname)UR(u-iid,r-iid)RR(iid,has-iid)POI(pid,oid,iid)思考:能进一步合并User和identity吗?User+Identity=Identity(iid,iname,isrole,isuser)User+Identity=Identity(iid,iname,type)要不要进行合并?哪个合并方案更好?2023/7/1726精选课件6.3.2逻辑模型优化优化思路一:考虑减少表

合并user和identity后的逻辑模式Identity(iid,iname,type)Privilege(pid,pname)Object(oid,oname)UR(u-iid,r-iid)RR(iid,has-iid)POI(pid,oid,iid)思考:是否应该进一步合并UR和RR?2023/7/1727精选课件6.3.2逻辑模型优化优化思路一:考虑减少表进一步合并UR和RR后的逻辑模式Identity(iid,iname,type)Privilege(pid,pname)Object(oid,oname)II(iid,has-iid)POI(pid,oid,iid)比较:优化到现在的结果,和逻辑模型参考方案三,有什么区别?2023/7/1728精选课件6.3.2逻辑模型优化优化思路二,效率优化考虑:针对减少表优化之后的逻辑模式Identity(iid,iname,type)Privilege(pid,pname)Object(oid,oname)II(iid,has-iid)POI(pid,oid,iid)思考:哪些操作的效率可能存在问题?如何解决这些问题?2023/7/1729精选课件6.3.2逻辑模型优化效率优化考虑一:表II(iid,has-iid)存储了给某一身份直接赋予的身份,但一身份实际拥有哪些身份?这个关系并没有直接存储这个问题可以从II(iid,has-iid)中递归计算获取答案这个问题的使用频率应该较高递归计算效率较低为了提高这一问题的解答速度,可以考虑增加表II_all(iid,has-iid),该表存储每一身份实际拥有的全部身份思考:增加该表的利与弊?你愿意增加这个表吗?2023/7/1730精选课件6.3.2逻辑模型优化效率优化考虑二:表POI(pid,oid,iid)存储了给某一身份直接赋予的权限,但一身份实际拥有哪些权限?这个关系并没有直接存储这个问题可以从II_all(iid,has-iid)和POI中计算这个问题的使用频率应该较高为了提高这一问题的解答速度,可以考虑增加表POI_all(pid,oid,iid),该表存储每一身份实际拥有的全部权限思考:增加该表的利与弊?你愿意增加这个表吗?2023/7/1731精选课件6.3.2逻辑模型优化逻辑模型优化参考方案一:Identity

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论