您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库安全性实验报告
1.在服务器级别上创建三个以SQLServer身份验证的登录名,登录名称自定。CREATELOGINZ_2011013199WITHPASSWORD='2011013199'CREATELOGINZX_2011013199WITHPASSWORD='2011013199'CREATELOGINZXJ_2011013199WITHPASSWORD='2011013199'2.分别为三个登录名在“gongcheng”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“gongcheng”数据库。USEgongchengGOCREATEUSERTomFORLOGINZ_2011013199--DROPUSERTomUSEgongchengGOCREATEUSERMaryFORLOGINZX_2011013199--DROPUSERMaryUSEgongchengGOCREATEUSERJhonFORLOGINZXJ_2011013199--DROPUSERJhon3.授予用户John创建表和视图的权限。GRANTCREATETABLETOJhonGRANTCREATEVIEWTOJhon连接后:验证代码:GOCREATESCHEMAtest_schemaAUTHORIZATIONJhonGO4.完成以下授权:(1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。GRANTINSERTONSTOTomWITHGRANTOPTION检验如下:(2)用户Mary对S,P,J三个表有SELECT和INSERT权力GOGRANTSELECT,INSERTONSTOMaryGRANTSELECT,INSERTONPTOMaryGRANTSELECT,INSERTONJTOMaryGO检验如下:(3)用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDATE权力。GOGRANTDELETE,update(QTY)ONSPJTOTomGO检验如下:架构的创建:检验代码:USEgongchengUPDATESPJSETQTY=QTY+2000DELETEFROMSPJWHERESno='S3'ORSno='S4'(4)把对用户Tom授予的所有权力收回GOREVOKEDELETE,update(QTY)ONSPJFROMTomREVOKEINSERTONSFROMTOMGO(5)对用户Mary增加SPJ表的SELECT权力。GOGRANTSELECTONSPJTOMaryGO(6)拒绝Mary对表P的INSERT权限。DENYINSERTONPTOMary5.在student数据库中创建角色STUDBA,将查询和更新SC表的权限授予角色STUDBA。USEStudentCREATEROLESTUDBAGRANTSELECT,UPDATEONSCTOSTUDBA6.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,在student数据库中为登录名映射数据库用户,将数据库用户加入STUDBA角色中。然后用对方为自己创建的登录名和对方的数据库服务器建立连接,对对方的数据库进行操作,验证所授予的权限。CREATELOGINOTHWITHPASSWORD='123'CREATEuserNIforloginOTHEXECSP_ADDROLEMEMBER'STUDBA','NI'实验截图如下:实验总结:还是没怎么明白为什么当允许用户拥有两个权限时(例如:查询和插入)但是检验时查询时没有问题的,而插入就有问题的(如下图显示的错误)INSERTINTO(Sno)VALUES(S10)但是,当只有插入权限时却是可以的。虽然最后我发现假如是S9就可以的,不知道为什么不能是s9以上的。由于最后我都是在宿舍做的,宿舍连接不上的就没有连接的,最后在机房完成的连接,为了简便起见就没有前面的操作的,只完成了连接。
本文标题:数据库安全性实验报告
链接地址:https://www.777doc.com/doc-7228512 .html