第1页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共6页实验三实现数据库的安全性与数据的完整性一、实验目的1.了解SQLServer2000的身份验证方法。2.掌握合法登录帐户的设置。3.掌握用户的权限管理方法。4.掌握实体完整性与参照完整性的实现方法。5.掌握域完整性的实现方法。二、实验内容1.Windows和SQLServer2000身份验证的比较。2.设置登录帐户。3.设置数据库用户权限。4.参照完整性5.实体完整性6.域完整性三、实验准备1.登录模式a)SQLServer和Windows:指定用户可以使用SQLServer身份验证和Windows身份验证连接到SQLServer。b)仅Windows:指定用户只能使用Windows身份验证连接SQLServer。第2页共6页第1页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共6页2.权限验证当验证了用户的身份并允许其登录到SQLServer2000实例之后,在用户必须访问的每个数据库中都要求单独的用户帐户。在每个数据库中都要求用户帐户可防止用户连接到SQLServer实例并访问服务器上的所有数据库3.角色利用角色,SQLServer管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。SQLServer提供了用户通常管理工作的预定义服务器角色和数据库角色。服务器角色第3页共6页第2页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共6页系统管理员:拥有SQLServer所有的权限许可。服务器管理员:管理SQLServer服务器端的设置。磁盘管理员:管理磁盘文件。进程管理员:管理SQLServer系统进程。安全管理员:管理和审核SQLServer系统登录。安装管理员:增加、删除连接服务器,建立数据库复制以及管理扩展存储过程。数据库创建者:创建数据库,并对数据库进行修改数据库角色public:维护全部默认许可。db_owner:数据库的所有者,可以对所拥有的数据库执行任何操作。db_accessadmin:可以增加或者删除数据库用户、工作组和角色。db_addladmin:可以增加、删除和修改数据库中的任何对象。db_securityadmin:执行语句许可和对象许可。db_backupoperator:可以备份和恢复数据库。db_datareader:能且仅能对数据库中的任何表执行select操作,从而读取所有表的信息。db_datawriter:能够增加、修改和删除表中的数据,但不能进行select操作。db_denydatareader:不能读取数据库中任何表中的数据。db_denydatawriter:不能对数据库中的任何表执行增加、修改和删除数据操作。4.实体完整性把表中的每行看做一个实体,它要求所有行都具有惟一标识通过建立索引、PRIMARYKEY约束、UNIQUE约束以及列的IDENTITY来实现。例1:CREATEtableemployee(job_idsmallintPRIMARYKEY,job_namechar(20)notnull)例2:CREATEtablestudent(snamechar(10),Snointnotnull,Primarykey(sno))例3:createtableii(aintnotnullIDENTITY(1,3),bchar)5.参照完整性维护被参照表与参照表之间的数据一致性,通过主键(PRIMARYKEY)和外键第4页共6页第3页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第4页共6页(FOREIGNKEY)约束实现。使用FOREIGNKEY约束需注意:FOREIGNKEY约束只参照同一个数据库中的其它表,跨数据库表的参照只能通过触发器来实现。例:CREATEtablePR(idintnotnullprimarykey,Namechar(10))CREATEtableFR(idintnotnullReferencesPR(id),Scoreintnotnull)6.域完整性(用户定义)要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。通过默认值CHECK、规则等约束实现例1:CHECK约束CREATEtableexample(idintnotnull,Scoreintnotnullcheck(score>=0andscore<=100))例2:对计算列使用表达式CREATETABLEmytable(lowint,highint,myavgAS(low+high)/2)四、实验步骤1.数据库安全性的实现(1)练习1:创建用户(本部分练习请参看课本P137-143)A.创建一个testlogin数据库B.新建登录wangming,liyong,liuxing,yanglan,并设定密码,服务器角色设为“系统管理员”数据库访问为testlogin。[提示]1.SQLServer默认的用户登录帐号...