实验3 数据库安全性与完整性控制实验.docx

上传人:李司机 文档编号:2000018 上传时间:2022-12-30 格式:DOCX 页数:19 大小:209.06KB
返回 下载 相关 举报
实验3 数据库安全性与完整性控制实验.docx_第1页
第1页 / 共19页
实验3 数据库安全性与完整性控制实验.docx_第2页
第2页 / 共19页
实验3 数据库安全性与完整性控制实验.docx_第3页
第3页 / 共19页
实验3 数据库安全性与完整性控制实验.docx_第4页
第4页 / 共19页
实验3 数据库安全性与完整性控制实验.docx_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《实验3 数据库安全性与完整性控制实验.docx》由会员分享,可在线阅读,更多相关《实验3 数据库安全性与完整性控制实验.docx(19页珍藏版)》请在三一办公上搜索。

1、试验3数据库平安性与完整性掌握试验1 .试验目的练习平安性授权方法、平安性和完整性查看的操作方法。2 .试验内容【试验3-1】使用createUSer创建用户,创建单个用户teacher,创建两个用户teacherl和Studento【试验3-2通过直接操作MySQL用户表创建用户,创建单个用户teacher2,创建两个用户teacher3和student2(请留意,新版的MySQL可能不支持使用此方法创建新用户)。【试验3-3】新建一个terminal窗口,使用mysql-u-h-p方式登录teachero【试验3-4】再次新建一个terminal窗口,使用mysql-u-h-P方式登录St

2、udento【试验3-5使用GRANT语句对用户student给予全部数据库全部表的insert权限和update权限。【试验3-6使用GRANT语句对用户student给予school数据库全部表的select权限。【试验3-7】使用GRANT语句对用户student给予school数据库Stuinfo表的create访问权限。【试验3-8】使用GRANT语句对用户student给予school数据库Stuinfo表的Stuno列上的select访问权限。【试验3-9】使用GRANT语句对用户student给予S全部数据库全部表的select访问权限,并设定student每小时最多可使用se

3、lect操作访问数据库的次数。【i懈3-10】查看表INFORMATlON_SCHEMA.USER_PRIVILEGES中有关student的信息,查看user表中的内容信息。【邮3-11】查看表INFoRMATloN_SCHEMA.SCHEMA_PRIVILEGES,找到student在school数据库下拥有的权限。【解3-12】查看表INFoRMATlC)N_SCHEMA.TABLE_PRIVILEGES,查找school数据库中Stuinfo数据表相关的表权限。懈3-13】查看表INFoRMATloN_SCHEMA.COLUMN_PRIVILEGES,查找用户sutdent的其中一条纪

4、录,其数据库为school,表名为Stuinfo,列名为Stuno,查看其授予权限类型。【试验3-14首先进入school数据库,假如没有,创建一个school数据库。创建Stuinfo表,包括stunoVarchar(IO)(加非空约束和主键约束)、Stunamevarchar(8)xStubirdatesStuageinto创建表course,包括cournoVarChar(3)(非空约束)、Cournamevarchar(10)xschyeardate(非空约束)、creditint,主键为课程号COUrnO和学年schyearo仓U建Stuandcour表,包括stunoVarchar

5、(10)、cournovarchar(3)xchonovarchar(10)f定义其主键为选课号chono,stuno为外键,参考Stuinfo中的stuno5lJo上述操作完成后连续向StUandCOUr数据表中添加新的字段SChyeardate,添加夕隧(courno,SChyear)参照course表中的courno,并删除时置空值。【试验3-15查看表INFORMATIOhLSCHEMATABLES存放数据库中全部数据库表信息,所得到的纪录值有很多条,然后观看其内部字段表示,进一步筛选表名为Stuinfo的纪录,school数据库Stuinfo表的全部基本信息都在这里描述。【试验3-1

6、6查看表INFORMATION_SCHEMA.TABLE_CONSTRAINTS存放表中所存在的约束信息。进一步筛选表名为Stuandcour的纪录信息,可以看到关于该表有三条约束信息,与我们设定的一样,其拥有两个外键和一个主键。尽管这三种约束涉及四个列字段,但是基于表层面还是三个约束,由于有一个外键是由两个列组成的。懈3-17查看表INFORMATlON_SCHEMA.KEY_COLUMN_USAGE存放数据库里全部具有约束的键信息,然后通过对表名筛选,选出表Stuandcour的全部以列为单位的约束信息,通过观看可以得出该查询结果与table级别约束的查询结果个数不同,这里消失四个结果,列

7、名C0LUMN_NAME部分涉及Stuandcour表中全部约束包含的全部列。据我们所知,Stuandcour表的主键为chono,为第一行结果;第一个外键只有一列,该列为Stuno,消失在其次行结果;其次个外键含有两列,分别为courno.schyear,消失在第三行、第四行。3 .试验要求(1)全部操作均在命令行或者MySQLWorkbench中完成。(2)将操作过程以屏幕抓图的方式复制,形成试验文档,并对比本章内容写出分析报告。试验结果截图如下:ff8雪矶rwMvtc*otKc2018MicroMftCorporaliofRW,ittH.tirdov*yst4S2edUWT7.27-vi

8、ar6J.btn:;an:.-57.27-0x6tinys.-jtcbr-hloceihoj:-pillyx):NftnUnI-VxagassvordontheCOaoandi:neiSterfocec*beinsecure.IUUXMvS.JV : ;OD id 11 3t* v*t i: S. * 27 MySQL Coauilty Sr er CFL*ekva*:。dwM、S:00.1019.rciaM,or1*ftlatAllr;fhtr*MrX.cl;rAiitrtdtroeatrxofGrtc1Cocpoxa:oaadoxt,ilite.OteOAne,ne、btxanukofIL

9、eiJxepcti%p:or,b,farhlpTrp,e*toclearthentIlIRtvtRYa*t集FIT.0!?,RvfMlwtmk,vtJ33MicrosoftVirdwL4*1C.0.17B4.00(C)X16MicxoMftCrporotoIVm所仔桂利.:MLndcwsUyst32cdC:ql-S.7.2eyeil-Uttudoot-hloe*lbst“333 raql:xnhitp33oduathecnomik1IineinterfacecanJ;naiue.MlcototeMygLaonor.LoUMntisnlrth;org.lourItVbQLconnectionid

10、is4 rvrvrci(c2000.2019,OracIean4cu”3affialea.AllIgbtaresexved.Orac.eisarensiered*cd*rkofOracleCorpora:oandori:sffiUat,Oth*rna*ayb*tmd*Mrkof,hirres时CtiVFna.Vpelpfort,forhe;PType9ctoCleeLrtheCUrrtmXiPUlsxa:eaen:.BWaa命*hr刁fvmiiwtrootL)ql*iiMittoysl.krlnt.btr.aBr*o4)valuesIocallMxt.tvachvc.pt*oid4*H)1Et

11、tM1054142S22)IMnoVBCohMrIM“voidInrftldllt* )tql,mttl*ct.npdntontotnt)Lrrfi(0.COsec)q!ttrrintooytqLutr(lMt,nsrputword*valf,!ralbott*tMchr2pfnror(1CieateItelAMadeo:WryOH.ITfed10Olc)prqlstschool;DtaucetetablestJiixfoerv0tOconaffectdIC.Wc)3LotcroDtsforstdu:.也理公t*MvfrizcraatonekltttinfotouUnx:buryOK.0ros

12、ffgtH(0.00t)tttfB今ft7剽yMjlurgrantcreateonschool.Stulnfoiostudent;SeryQK0rsf:ec:ed(0.00MC)H71qcrantf*lct(tuno)onschool,tuinfctortdrt6ry0&.0rovsffcZ(0.Oltc)KU牛4C7T、CQwl;gnmicrtEchoolcatfctc40.Ols)BVH1.1x.:J八:.:、.L.apet.hoar10EFMt1044l000Ya:haveanror.nruirSQltwc*ettusualthHlCornMPmhomrVjSOLserverr!xfrn

13、engtntxtctt3W*10tHctIayq-grantse.etoc.sttTItMaxq3rxsjtthojr10:UvrrOK.0rewaffctdLvwrrx&,900才收:ttUH,4HSCT!5:令2方召-mvMlurm(Grantsfor9d*ntC%UUMbtUCl.LTIHIt 6 :0 * STUdn:ierlstuicfo10,sudnt,SBGwindowssystem32cmd.exe-mysql-uroot-pstubirdateatline1mysqlUSeschool,DatabasechangedmysqlcreatetableStuinfo(- stun

14、ovarchar(10)primarykeynotnull,- StunamBvarchar(8),- stubirdate,- stuagint);QueryOK,Orowsaffected(O.06sec)mysqlcreatetablecourse(- cournovarchar(3)notnull,- CournamBvarchar(10),- schyeardatenotnull,- creditint,primarykey(courno,schyear);QueryOK,Orowsaffected(O.06sec)sqlcreatetableStuandcourC- stunova

15、rchar(10),- cournovarchar(3),- chonovarchar(10)primarykey,- foreignky(sttmo)referencesStuinfo(stuno);QueryOK,Orowsaffected(O.04sec)fysqlaltertableStuandcouraddschyeardate;3ueryOK,0rowsaffected(O.09sec)Records:0Duplicates:0Tamings:0ysqlaltertableStUandCoUraddforeignkey(commo)referencescourse(courno);

16、3ueryOK,Orowsaffected(O.03sec)Records:ODuplicates:OVamings:OGwindowssystem32cmd.exemysql-uroot-pRecords:ODuplicates:OIamings:Omysqlshowdatabases,+IDatabaseinformation-schamysqlphpmyadminschooltest5rowsinset(O.OOsec)mysqluseinformation_schema,Databasechangedmysqlshowtables;ITables_in_information-sche

17、maCHARACTER_SETSCOLLATIONSCOLLATlohLCHARAeTER.SET-APPLICABILITYCOLUHNSCoLUKN.PRIVILEGESKEY_COLUMN_USAGEPROFILINGROUTINESSCHEMATASCHEKA.PRIVILEGESSTATISTICSTABLESTBLE.CONSTRAINTSTABLE.PRIVILEGESTRIGGERSUSER_PRIVILEGESVIEWS7rowsinset(0.00sec)ysqluseschool.atabasechangedysqlshowtables,Tables_in_schoolc

18、ourseStuandcourStuinforowsinset(0.00sec)ysqldescStuinfo;FieldITypeINullIKeyDefaultExtrastunoStunamestubirstuagevarchar(10)varchar(8)dateint(ll)NOYESYESYESPRINULLNULLNULLrowsinset(0.00SeC)mysqlrowsinset (0. Olsec)ysqlNULLatabasechangedysql show tables;Tables_in_information_schema7rowsin set (0.00 sec

19、)ysqldesctable_constraints;FieldITypeNull Key Default Extra S9Gwindovssystem32cmd.exe mysql u root -pXYESNONONONDNOCHARACTER_SETSCOLLATIONSCOLLATION_CHARACTER_SET_APPLICABILITYCOLUMNSCOLUKN_PRIVILEGESKEY/OLUINjJSAGEPROFILINGROUTINESSCHEMATASCHEHA.PRIVILEGESSTATISTICSTABLESTABLE-CONSTRAINTSTABLE.PRIV

20、ILEGESTRIGGERSUSER-PRIVILEGESVIEWSvarchar(512)varchar(64)varchar(64) varchar(64) varchar(64) varchar(64)CONSTRAIH-CATALOGCONSTRAIhrr-SCHEIAConstraintjmeTABLE_SCHENATABLE.NAIECONSTRAINT_TYPEysqlselect*frominformation-schina.table_constraints;ICONSTRAINTCATALOGCONSTRAINT_SCHEKACONSTRAINT_NAMETABLE_SCH

21、EMATABLE_NAMEICONSTRA而JYPEIINULLIPRIMARYKEYImysqlIPRIMARYImysqlIcolunns_privINULLIImysqlIPRIMARYImysqlIdbIPRIKARYKEYINULLIIInySqlIPRIMARYImysqlIfuncIPRIMARYKEYINULLIImysqlIPRIMARYImysqlIhelp-categoryIPRIMARYKEYINULLImysqlInameImysqlIhlp-categoryIUNIQUEI.IINULLIImysqlIPRIMARYIInySqIIhelp_keywordIPRIM

22、ARYKEYINULLImysqlInameIrysqlIhelp_keywordIUNIQUEI,IINULLIImysqlIPRIMARYIWSqIIhelpjrelationIPRIMARYKEYINULLIImysqlIPRIMARYIITySqlIhelp-topicIPRIMARYKEYINULLImysqlInameImysqlIhlp_topicIQUEI.IINULLImysqlIPRIMARYImysqlIhostIPRIMARYKEYINULLImysqlIPRIMARYIIDySqlIprocIPRIIARYKEYINULLImysqlIPRIMARYImysqlIPr

23、oCS-PriVIPRIMARYKEYINULLImysqlIPRIMARYImysqlItables-privIPRIMARYKEYINULLImysqlIPRIMARYImysqlItime_zonIPRIMARYKEYINULLImysqlIPRIMARYImysqlItime_zone_leap_secondIPRIIARYKEYINULLImysqlIPRIMARYIrysqlItime_zone_nameIPRIIARYKEYINULLImysqlIPRIMARYImysqlItime_zone_transitionIPRIMARYKEYINULLImysqlIPRIMARYImy

24、sqlItime_zone_transition_typeIPRIIARYKEYINULLImysqlIPRIMARYImysqlIuserIPRIMARYKEYINULLIlhdm.IphpryadmnIPRIMARYIphpnyadminIpma_bookmarkIPRIIARYKEYINULLIlhdm.IPhpnryadminIPRIMARYIphprayadminIPma_COIUnn_infoIPRIIARYKEYINULLIlham.IPhpmyaominIdb_nameIphpmyaddnIpma-coluim_infoIUNIQUEI.IINULLIphpryadminIPR

25、IMARYIphpyaddnIpma-historyIPRIMARYKEYINULLIlIphpmyadminIPRIMARYIPhPnIyadndnIpma_pdf_pagesIPRIIARYKEYINULLIlIPhPrayadminIPRIMARYIphpryadminIpma_relationIPRIIARYKEYINULLIlIphprayadminIPRIMARYIphprayadminIpma_table_coordsIPRIIARYKEYINULLIlIPhprayadminIPRIMARYjhptyaddnIpmatableinfoIuserj3rivilegesIviews

26、117rowsinset(0.00sec)ysqldesckey-colum-usage;+-IFieldITypeINullKeyDefaultExtraIvarchar(512)varchar(64)varchar(64)varchar(512) varchar(64) varchar(64) varchar(64)bigint(10) bigint(10) varchar(64) varchar(64) varchar(64)Constraint-catalCONSTRAINT_SCHEKAConstraint_nameTABLECATALOGTABLE_SCHENATABLE_NAME

27、CoLUXN_NAMEORDINAL_POSITIONPOSITION.IN.UNIQUE-NSTRAIIREFERENCED_TABLE_SCHEMAREFERENCED_TABLE_NAMEREFERENCED_COLUMN_NAMEQBC:windowssystcm32cd.exe-mysqluroot-prowinset(0.03sec)rsqlselectfrominfOrmationeSchema.ky-coltsn-usage;ICONSTRAINT/ATALoGICONSTRAIKSCHEJIAICONSTRAIKT.NAJIETABLEwATALoGTABLE_SCHEJlA

28、TABLE.NIEICOLUIIfLNAJlEORDINALjJOSITIoNIPOSlTl0N_INJJNIQUE-CONSTRAINTIREFERENCEDjrABLE_SCHEllAIREFEREtODJABLEJ!EIREFERENCED8LUBLNAjIE,ImysqlICOlunnS-PriVIIOJLLIsqlIPRIBARYINULLIHostI1INULLINULLINULLINULLIIPRIMARYINULL,IysqlINULLmysqlIcolwms_privINULLIDbI2INULLINULLINULLIIPRIMARYINULLI叫SqlINULLwsqlIC

29、OlunnS-PriVINULLIUserI3INULLINULLINuLLIIPRIMARYINULLImySqlINULLmysqlIco】UnnS-PriVINULLITable_nameI4INULLINULLS3C:window5systcm32cmd.exe-mysqlurootpVtyset(0.Olsec)rsqlselect*frominformation_schema.key-colu.Asagewheretable-name,stuandcor,.ICoNSTRAlwr-CATALOGCONSTRAIN.SCHEAICoNSTRAlKrJW(ETABLECATALOGTA

30、BLMsCHEBATABuLNAMECOLUINJiAIIEIOrdinalj3OSITIONPoSmoiclNJJNIQuECONSTRAINTREFERENCED_TABLE_SCHEIAREFERENCED_TABLE_NAIEREFERENCED一CoLIJlINULLIschooli IIPRIMARYI NULLNULL I NULLIschoolINULLIStUan&试验分析报告用户认证与鉴别也称为身份认证,是指在数据库系统中确认操作者身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限,进而使数据库系统的访问策略能够牢靠、有效地执行,防止攻击者假冒合法用户获得资源的访

31、问权限,保证系统和数据的平安,以及授权访问者的合法利益。用一个用户名或者标识号来标明用户身份,系统内纪录着全部合法用户的标识,系统鉴别此用户是否为合法用户,假如是则进入下一步,否则不能使用该系统。为了进一步核有用户,可以要求用户输入口令,用户在终端上输入的口令不显示在屏幕上,系统对用户口令进行鉴别。用户还可以预先商定一个计算过程或者函数,鉴别用户身份时,系统供应一个随机数,用户供应一个计算结果,系统推断用户计算结果是否正确,由此来鉴别用户。如图4-3所示,用户认证和鉴别的过程不仅在连接数据库的时候进行,而且在连接胜利后进彳攒据库查询(或者数据库访问用寸还要进行用户的身份认证,只有该身份在查询的

32、对象上有相应的权限时,才能获得查询批准,否则即使连接胜利,也不能获得查询结果。哪些对象上具有什么样的操纵权限,这就是访问掌握(也称为存取掌握)。图4-3数据库身份认证的过数据库访问掌握是维护数据库平安最主要、最基本、最核心的方法。数据库系统通过平安规章和策略规定对合法用户进行正常接入,对于攻击者以及未经授权非法访问的用户则进行制止。数据库访问掌握确保只授权给有资格的用户访问数据库的权限,同时令全部未被授权的人员无法接近数据。数据库访问掌握包括两部分定义用户权限,并将用户权限纪录到数据字典;合法权限检查,当用户发出存取数据库恳求时,系统查询数据字典进行合法权限检查,假如用户恳求超越其权限,系统将

33、拒绝执行此操作。数据库访问掌握的方法大体分为如下几类。L自主访问掌握在自主访问掌握中,用户可依据自己的需求对系统相应参数进行修改,以打算满意哪些条件的用户可以访问相应数据,自主来源于可访问数据资源的用户能够自主地将他所拥有的权限授予其他在该系统登录的任意用户。用户对于不同的数据对象有不同的存取权限,不同用户对同一对象也有不同的存取权限,用户还可以将其拥有的权限转授给其他用户,其最基本的实现方式可以用一个三元组来表示:(S。M)其中S表示主体,即操作用户;O表示客体,即数据;M表示数据库基本的查询、修改、添加、删除等操作。主体、客体、操作三元组的自主访问掌握存在些许不足,即数据范围不能被约束,也

34、就是客体不受约束,为此还可以进一步对客体进行约束,形成四元组:(S,O,M,P)新增的P元素用来表示约束条件,只有当满意P条件时,S才对O进行M授权。对访问掌握添加了约束条件后,可以对用户进行等级划分,将授权指定给某最大级用户组s,依据从前制定好的权限传播策略传递给其他用户。例如,某数据库指定某授权给老师,依据传播策略,英语老师和语文老师都属于老师,都应当得到该授权,这里存在老师、某科目老师两个层次的抽像,这样大大提升了授权的精确性。4.3节中MySQL的平安性访问掌握支持了主体、客体、操作和约束的四元模型。2 .基于角色的访问掌握在自主访问掌握中,对用户的授权都是一维的,在简单而浩大的数据库

35、系统中难以达到良好的表现。20世纪90年月消失了基于角色的访问掌握模型,该模型中心思想为将角色作为访问掌握对象,对角色给予其平安特征,并且对用户主体给予角色语义,一个用户可以拥有很多角色,每种角色对应肯定的平安权限,一个用户所拥有的平安权限为其拥有全部角色相应权限的并集。这样的概念转变使得当用户角色转变或者角色功能转变时,对相应部分能够直接整改,便利高效。基于角色的访问掌握模型有很多,其中最核心的模型主要包含用户集、角色集、对象集、操作集、特权集五个部分。用户集为用户主体的集合,对象集为数据客体的集合;操作集就是对于数据对象的一组操作,通过特权集对某角色的一系列权限进行封装,其表现形式为一组操

36、作与数据对象的集合;角色集就是这个模型的核心,建立用户和特权集的关联。3 .强制访问掌握强制访问掌握与自主访问掌握相比,更适合于平安级别更高的数据库系统,由于自主访问掌握可以由授权用户将权限任意传递,造成了数据库访问掌握权限特别自由,使数据库平安受到了威逼。强制访问掌握通过不行逾越的访问限制来保障数据库不受各种直接或间接的攻击,保证数据库的平安。DBMS中对于客体和主体所安排的全部权限在系统平安策略不发出调整时不能被转变。强制访问掌握是一种基于平安级标记的访问掌握方法,对每个数据对象都标记为肯定的密级,这种标记分为几个不同的级别,每个用户也被授予某个级别的许可证。对于任意一个对象,只有具有合法

37、许可证的用户才可以存取,其强制存取掌握相对比较严格。强制访问掌握机制虽然在肯定程度上提高了数据库系统的平安性,但是由于框定了各种访问约束,导致系统的敏捷性受限,影响了实际应用中便利的性能。视图是关系数据库系统供应应用户以多种角度观看数据库中数据的重要机制。视图是一个虚表,对视图的数据进行操作时,系统依据视图的定义操作与视图相关联的基本表。视图中的数据来源于原来的基本表中,所以当基本表中的数据发生变化时,从视图中查询出的数据也就随之转变。视图就像一个窗口,透过它可以看到数据库中自己感爱好的数据及其变化。视图使用时与表一样,其主要作用是不让全部的人都能看到整张表。例对于一个学校,其同学的状况存储于数据库的一个或多个表中,而作为学校的不同职能部门,所关怀的同学数据的内容是不同的。即使是同样的数据,也可能有不同的操作要求,于是就可以依据他们的不同需求,在数据库上定义他们对数据库所要求的数据结构。这种依据用户观点所定义的数据结构就是视图。视图使用户能以多种角度看待同一数据。视图机制能使不同的用户以不同的方式看待同一数据,当很多不同种类的用户共享同一个数据库时,这种敏捷性是特别必要的。视图能够对机密数据供应平安爱护,有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不消失在不应看到这些数据的用户视图上,这样视图机制就自动供应了对机密数据的平安爱护功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号