实验三实现数据库的安全性与数据的完整性.docx

上传人:小飞机 文档编号:1943025 上传时间:2022-12-27 格式:DOCX 页数:6 大小:193.44KB
返回 下载 相关 举报
实验三实现数据库的安全性与数据的完整性.docx_第1页
第1页 / 共6页
实验三实现数据库的安全性与数据的完整性.docx_第2页
第2页 / 共6页
实验三实现数据库的安全性与数据的完整性.docx_第3页
第3页 / 共6页
实验三实现数据库的安全性与数据的完整性.docx_第4页
第4页 / 共6页
实验三实现数据库的安全性与数据的完整性.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

1、实验三实现数据库的安全性与数据的完整性一、实验目的1. 了解SQL Server 2000 的身份验证方法。2. 掌握合法登录帐户的设置。3. 掌握用户的权限管理方法。4. 掌握实体完整性与参照完整性的实现方法。5. 掌握域完整性的实现方法。二、实验内容1. Windows和SQL Server2000身份验证的比较。2. 设置登录帐户。3. 设置数据库用户权限。4. 参照完整性5. 实体完整性6. 域完整性三、实验准备1.登录模式a) SQL Server和Windows:指定用户可以使用SQL Server身份验证和Windows身份验证连接到SQL Server。b) 仅Windows:

2、指定用户只能使用Windows身份验证连接SQL Server。2.权限验证当验证了用户的身份并允许其登录到SQL Server 2000实例之后,在用户必须访问的每个数据库中都要求单独的用户帐户。在每个数据库中都要求用户帐户可防止用户连接到 SQL Server 实例并访问服务器上的所有数据库3.角色利用角色,SQL Server管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。SQL Server提供了用户通常管理工作的预定义服务器角色和数据库角色。 服务器角色l 系统管理员:拥有SQL Server所有的权限许可。l 服

3、务器管理员:管理SQL Server服务器端的设置。l 磁盘管理员:管理磁盘文件。l 进程管理员:管理SQL Server系统进程。l 安全管理员:管理和审核SQL Server系统登录。l 安装管理员:增加、删除连接服务器,建立数据库复制以及管理扩展存储过程。l 数据库创建者:创建数据库,并对数据库进行修改数据库角色l public:维护全部默认许可。l db_owner:数据库的所有者,可以对所拥有的数据库执行任何操作。l db_accessadmin:可以增加或者删除数据库用户、工作组和角色。l db_addladmin:可以增加、删除和修改数据库中的任何对象。l db_security

4、admin:执行语句许可和对象许可。l db_backupoperator:可以备份和恢复数据库。l db_datareader:能且仅能对数据库中的任何表执行select操作,从而读取所有表的信息。l db_datawriter:能够增加、修改和删除表中的数据,但不能进行select操作。l db_denydatareader:不能读取数据库中任何表中的数据。l db_denydatawriter:不能对数据库中的任何表执行增加、修改和删除数据操作。 4.实体完整性把表中的每行看做一个实体,它要求所有行都具有惟一标识通过建立索引、PRIMARY KEY约束、UNIQUE约束以及列的IDENT

5、ITY来实现。例1:CREATE table employee(job_id smallint PRIMARY KEY, job_name char(20) not null) 例2:CREATE table student(sname char(10),Sno int not null,Primary key(sno)例3:create table ii(a int not null IDENTITY(1,3),b char)5.参照完整性维护被参照表与参照表之间的数据一致性,通过主键(PRIMARY KEY)和外键(FOREIGN KEY)约束实现。使用FOREIGN KEY约束需注意:F

6、OREIGN KEY约束只参照同一个数据库中的其它表, 跨数据库表的参照只能通过触发器来实现。例:CREATE table PR(id int not null primary key,Name char(10)CREATE table FR(id int not null References PR(id),Score int not null)6.域完整性(用户定义)要求表中指定列的数据具有正确的数据类型、格式和有效的 数据范围。通过默认值、CHECK、规则等约束实现例1:CHECK约束CREATE table example(id int not null,Score int not n

7、ull check(score=0and score=100)例2:对计算列使用表达式CREATE TABLE mytable ( low int, high int, myavg AS (low + high)/2 )四、实验步骤1.数据库安全性的实现(1)练习1:创建用户(本部分练习请参看课本P137-143)A创建一个testlogin数据库B新建登录wangming,liyong,liuxing,yanglan,并设定密码,服务器角色设为“系统管理员”数据库访问为testlogin。提示1.SQL Server默认的用户登录帐号:Sa 、builtin administrators2.

8、新建登录(注意身份验证模式),对“服务器角色”及“数据库访问”的设定。(2)练习2:数据库用户权限管理(注:部分操作还可以通过企业管理器实现)给定两个关系模式E(职工)(职工号,姓名,年龄,职务,工资,部门号)P(部门)(部门号,名称,经理名,地址,电话)用SQL语言中的GRANT和REVOKE语句,完成以下授权定义或存取控制功能:a) 用户wangming对表E有SELECT权力b) 用户liyong对P有INSERT和DELETE权力c) 把对表E的查询权力授予用户liuxing,并给liuxing有再授权的权力d) 用户liuxing对表P的字段(地址,电话)有修改的权力e) 用户yan

9、glan具有从每个部门职工中SELECT最高工资、最低工资,平均工资的权力,不能查看每个人的工资(可以用视图)f) 对上述每一种情况,撤销各用户所授予的权力。提示用户(或应用程序)使用数据库的方式称为权限。权限有几种:l 读权限:允许用户读数据,但不能修改数据l 插入权限:允许用户插入新的数据,但不能修改数据l 修改权限:允许用户修改数据,但不能删除数据l 删除权限:允许用户删除数据Transaction_SQL 语句使用grant、revoke和deny三种命令来实现管理权限GRANT 权限依赖于所授予的语句权限和权限中涉及的对象。sysadmin 角色中的成员可在任何数据库中授予任何权限。

10、对象所有者可为他们所拥有的对象授予权限。db_owner 或 db_securityadmin 角色的成员可授予其数据库中任何语句或对象上的任何权限。2数据完整性的实现1)练习3:请通过数据完整性策略实现数据的完整性。(见下述每个表的说明部分)表1 学生情况表XSQK的结构列名数据类型长度是否允许为空值默认值说明学号Char6N主键姓名Char8N性别Bit2N出生日期smalldatetime4N专业名Char10N所在系Char10N联系电话char13Y表2 课程表KC的结构列名数据类型长度是否允许为空值默认值说明课程号Char3N主键课程名Char20N教师Char10开课学期Tiny

11、int1学时Tinyint360学分Tinyint2N表3 成绩表XS_KC的结构列名数据类型长度是否允许为空值默认值说明学号Char6N参考XSQK表的学号课程号Char3N参考KC表的课程号成绩int40-1002)练习4:根据表4及表5,完成以下题目:a) 在部门表和员工表的结构中标注主关键字。b) 确定在部门表和员工表中共有的属性。c) 指出哪个表中的属性是外关键字。d) 确定哪个表是主表,哪个表是从表。e) 部门表和员工表是如何通过关键字实施数据完整性的。f) 用SQL语句建立符合上述数据的表,并实现数据的完整性。表4部门表部门代码部门名负责人地点0001生产部李华江浙江杭州0002销售部张丽浙江宁波0003市场部王欣浙江温州表5员工表员工代码姓名家庭住址联系电话邮政编码部门代码200001王华杭州869609863100060001200002李想富阳854387693100100003200003张丽杭州678935423100170002200004李华江萧山8284987331010100016

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号