好文档 - 专业文书写作范文服务资料分享网站

精编【安全生产】实验三实现数据库的安全性与数据的完整性

天下 分享 时间: 加入收藏 我要投稿 点赞

CREATE table example (id int not null,

Score int not null 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 \\ administrators

2.新建登录(注意身份验证模式),对“服务器角色”及“数据库访问”的设定。 (2)练习2:数据库用户权限管理(注:部分操作还可以通过企业管理器实现)

给定两个关系模式

E(职工)(职工号,姓名,年龄,职务,工资,部门号) P(部门)(部门号,名称,经理名,地址,电话)

用SQL语言中的GRANT和REVOKE语句,完成以下授权定义或存取控制功能: a) 用户wangming对表E有SELECT权力 b) 用户liyong对P有INSERT和DELETE权力

c) 把对表E的查询权力授予用户liuxing,并给liuxing有再授权的权力 d) 用户liuxing对表P的字段(地址,电话)有修改的权力

e) 用户yanglan具有从每个部门职工中SELECT最高工资、最低工资,平均工资的权力,不

能查看每个人的工资(可以用视图) f) [提示]

用户(或应用程序)使用数据库的方式称为权限。权限有几种: ? 读权限:允许用户读数据,但不能修改数据 ? 插入权限:允许用户插入新的数据,但不能修改数据 ? 修改权限:允许用户修改数据,但不能删除数据 ? 删除权限:允许用户删除数据

Transaction_SQL 语句使用grant、revoke和deny三种命令来实现管理权限

GRANT 权限依赖于所授予的语句权限和权限中涉及的对象。sysadmin 角色中的成员可在任何数据库中授予任何权限。对象所有者可为他们所拥有的对象授予权限。db_owner 或 db_securityadmin 角色的成员可授予其数据库中任何语句或对象上的任何权限。

对上述每一种情况,撤销各用户所授予的权力。

2.数据完整性的实现

1)练习3:请通过数据完整性策略实现数据的完整性。(见下述每个表的说明部分)

表1 学生情况表XSQK的结构

列名 学号 姓名 性别 出生日期 专业名 所在系 联系电话 数据类型 Char Char Bit smalldatetime Char Char char

表2 课程表KC的结构

列名 课程号 课程名 教师 开课学期 学时 学分 数据类型 Char Char Char Tinyint Tinyint Tinyint

长度 3 20 10 1 3 2 是否允许为空值 N N N 默认值 60 说明 主键 长度 6 8 2 4 10 10 13 是否允许为空值 N N N N N N Y 默认值 说明 主键 表3 成绩表XS_KC的结构

列名 学号 数据类型 Char 长度 6 是否允许为空值 N 默认值 说明 参考XSQK表的学号 课程号 Char 3 N 参考KC表的课程号 成绩 int 4 0-100 2)练习4:根据表4及表5,完成以下题目:

a) 在部门表和员工表的结构中标注主关键字。 b) 确定在部门表和员工表中共有的属性。 c) 指出哪个表中的属性是外关键字。 d) 确定哪个表是主表,哪个表是从表。

e) 部门表和员工表是如何通过关键字实施数据完整性的。 f)

用SQL语句建立符合上述数据的表,并实现数据的完整性。

表4部门表

部门代码 0001 0002 0003 部门名 生产部 销售部 市场部 负责人 李华江 张丽 王欣 地点 浙江杭州 浙江宁波 浙江温州 表5员工表

员工代码 200001 200002 200003 200004

姓名 王华 李想 张丽 李华江 家庭住址 杭州 富阳 杭州 萧山 联系电话 86960986 85438769 67893542 82849873 邮政编码 310006 310010 310017 310101 部门代码 0001 0003 0002 0001

精编【安全生产】实验三实现数据库的安全性与数据的完整性

CREATEtableexample(idintnotnull,Scoreintnotnullcheck(score>=0andscore<=100))例2:对计算列使用表达式CREATETABLEmytable(lowint,highint,myavgAS(low
推荐度:
点击下载文档文档为doc格式
111uj9y0eg85bn78arf2570pk9t82300b6v
领取福利

微信扫码领取福利

微信扫码分享