7数据库设计实例-权限管理与设计解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

6权限管理的设计与实现权限管理与设计探讨–任何Application都应有权限管理子系统–DBMS的权限管理是权限管理的典范–DBMS权限管理策略适用于大多数App的权限管理–本章首先讲述DBMS的权限管理策略–然后讨论DBMS权限管理策略数据模型设计和实现本章的目标–掌握DBMS的权限管理策略–本章是一个数据库设计与实现的综合案例,希望通过一个完整子系统数据模型的设计和实现,理解、体会和掌握数据模型的设计和实现方法2020年4月27日星期一1数据库系统概念----高级SQL6权限管理的设计与实现本章内容–6.1DMBS的权限管理–6.2DMBS权限管理的概念模型设计–6.3DMBS权限管理的逻辑模型设计1、E-R图转换为表并进行必要的合并2、优化逻辑模型–6.4DMBS权限管理的物理模型设计2020年4月27日星期一2数据库系统概念----高级SQL2020年4月27日星期一3数据库系统概念----高级SQL6.1DMBS的权限管理本节要点:–DBMS权限的分类–DBMS的身份管理–授权与回收权限2020年4月27日星期一4数据库系统概念----高级SQL6.1权限分类权限的分类–系统权限administrator,createtable,connect…–针对关系(table/view)的权限select,update,delete,insert…示例:selectons–针对属性/属性组的权限select,update,delete,insert…示例:select(sno,sname)ons没有关于元组的权限,不能基于元组授权SSnoSnameDeptS1甲计S2乙软S3丙软S4丁计2020年4月27日星期一5数据库系统概念----高级SQL6.1身份标识数据库系统的身份标识–用户user–角色role用户和角色的关系–连接使用数据库,必须以一个特定的用户身份–不能使用role身份直接连接使用数据库–一个用户可同时具备多个角色–一个角色可以为多个用户拥有–角色可以拥有角色–角色拥有关系可以传递–权限可以授予用户或者角色–用户拥有授给本用户的所有权利,以及本用户具有的角色的所有权利每个用户对自己模式下的对象(表,视图…)拥有属主权(owner)2020年4月27日星期一6数据库系统概念----高级SQL6.1身份管理用户管理–创建用户:createuserusernameidentifiedbypassword;–删除用户:dropuserusername;角色管理–创建角色:createrolerolename;–删除角色:droprolerolename;用户和角色关系的管理–赋予用户角色:grantrole1tou1;–撤销用户角色:revokerole1fromu1;2020年4月27日星期一7数据库系统概念----高级SQL6.1授权:grant授权–grantprivilegetoidentity(user/role)–示例:u1将s(sno,sname)的查询权授予u2和role1grantselect(sno,sname)onstou2,role1;转授权限:withgrantoptionu1:grantselectonstou2;//u2拥有了selects权,无转授权权u2:grantselectonstou3;//不能成功u1:grantselectonstou4withgrantoption;//u4拥有了selects权,并有转授权权u4:grantselectonstou5;//成功,u5拥有了selects权2020年4月27日星期一8数据库系统概念----高级SQL6.1权限回收:revoke权限回收revoke–revokeprivilegefromidentity(user/role);–示例,u1:revokeselectonsfromu2;转授的权力与回收–转授权人的权力被回收时,其转授的权力随之被回收–示例:u1:grantselectonsctou2withgrantoption;u2:grantselectonsctou3;u1:revokeselectonscfromu2;//u2权力被回收后,u3不再具有selectsc权2020年4月27日星期一9数据库系统概念----E-R6.2权限管理的概念模型设计DBMS权限管理的概念模型设计–你在一个DBMS开发公司工作,负责进行DBMS权限管理子系统的开发工作–请根据DBMS的权限管理要求,完成权限管理子系统概念模型的设计2020年4月27日星期一10数据库系统概念----E-R6.2权限管理的概念模型设计DBMS权限管理概念模型设计–参考方案(一)–思考:该方案有哪些不足?ISA角色用户具有身份具有权限拥有对象IidpasswordpidonamepnameoidIname2020年4月27日星期一11数据库系统概念----E-R6.2权限管理的概念模型设计DBMS权限管理概念模型设计–参考方案(二)grantergrantedISA角色用户具有身份具有权限拥有对象GrantoptionIidpasswordpidonamepnameoidIname2020年4月27日星期一12数据库系统概念----E-R6.2权限管理的概念模型设计参考方案(一)vs参考方案(二)–参考方案(一)没有描述谁进行的授权–参考方案(二)是一个比较理想的方案关于后续讨论–为了方便讨论,以下我们采用方案一–采用方案一,即假设我们不考虑权力由谁授予–采用方案一,仅仅是为了后续讨论的方便思考:–如果不使用继承,E-R会如何?–(假设不考虑权力由谁授予)2020年4月27日星期一13数据库系统概念----E-R6.2权限管理的概念模型设计DBMS权限管理概念模型设计–参考方案(三)–一种不使用继承的方案角色用户具有具有权限拥有对象UIDpasswordpidonamepnameoidUnameRidRname拥有2020年4月27日星期一14数据库系统概念----E-R6.2权限管理的概念模型设计DBMS权限管理概念模型设计–参考方案(四)–另一种不使用继承的方案身份具有权限拥有对象IidpasswordpidonamepnameoidInametype2020年4月27日星期一15数据库系统概念----E-R6.2权限管理的概念模型设计假设不考虑权力由谁授予,思考:–方案一、三、四,各有什么优缺点?–哪个方案更合适?你更愿意选择哪个方案?2020年4月27日星期一16数据库系统概念----E-R6.3权限管理的逻辑模型设计逻辑模型设计步骤–6.3.1E-R图转换为表并进行必要的合并–6.3.2逻辑模型优化转换、设计理解、表达现实世界概念模型:E-R图逻辑模型:DBSchema2020年4月27日星期一17数据库系统概念----E-R6.3.1E-R关系模式假设DBMS权限系统概念模型设计采用方案(一)–练习:请将E-R图,转换逻辑模型–思考:继承关系,如何转换更合适?ISA角色用户具有身份具有权限拥有对象IidpasswordpidonamepnameoidIname2020年4月27日星期一18数据库系统概念----E-R6.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)可以省略吗?2020年4月27日星期一19数据库系统概念----E-R6.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能合并吗?2020年4月27日星期一20数据库系统概念----E-R6.3.1E-R关系模式参考方案(三)–实体转换的关系,只为parent建表Identity(iid,iname,password,type)Privilege(pid,pname)Object(oid,oname)–联系转化的关系II(iid,has-iid)POI(pid,oid,iid)2020年4月27日星期一21数据库系统概念----E-R6.3.1E-R关系模式思考一:–逻辑模型一、二、三,哪一个更合适?–如果你是设计人员,你更愿意选择哪个方案?思考二:–逻辑模型二,和概念模型三,有什么关系?–逻辑模型三,和概念模型四,有什么关系?–你能总结一下,当有继承关系时,概念模型到逻辑模型的转化方法吗?2020年4月27日星期一22数据库系统概念----E-R6.3.1表的合并表合并的原则–二元m:1联系转化成的表可以和多端实体转化成的表进行合并–其它表之间不能机械合并权限系统E-R图转换成的表的合并–本逻辑模型无表可以机械合并2020年4月27日星期一23数据库系统概念----E-R6.3.2逻辑模型优化逻辑模型设计步骤–1、E-R图转换为表并进行必要的合并本步可以按照机械方法完成–2、逻辑模型优化本步无具体可行的机械方法主要依靠设计人员的经验和能力逻辑模型优化–本节针对逻辑模型方案一,进行优化转换、设计理解、表达现实世界概念模型:E-R图逻辑模型:DBSchema2020年4月27日星期一24数据库系统概念----E-R6.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)2020年4月27日星期一25数据库系统概念----E-R6.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)–思考:是去掉好,还是原来好?2020年4月27日星期一26数据库系统概念----E-R6.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)要不要进行合并?哪个合并方案更好?2020年4月27日星期一27数据库系统概念----E-R6.3.2逻辑模型优化优化思路一:考虑减少表–合并user和identity后的逻辑模式Identity(iid,iname,type)Privilege(pid,pname)Object(

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功