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

上传人:b****1 文档编号:14505428 上传时间:2023-06-24 格式:DOCX 页数:9 大小:50.89KB
下载 相关 举报
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第1页
第1页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第2页
第2页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第3页
第3页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第4页
第4页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第5页
第5页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第6页
第6页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第7页
第7页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第8页
第8页 / 共9页
精编安全生产实验三实现数据库的安全性与数据的完整性.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《精编安全生产实验三实现数据库的安全性与数据的完整性.docx》由会员分享,可在线阅读,更多相关《精编安全生产实验三实现数据库的安全性与数据的完整性.docx(9页珍藏版)》请在冰点文库上搜索。

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

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

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

 

xxxx年xx月xx日

xxxxxxxx集团企业有限公司

Pleaseenteryourcompany'snameandcontentv

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

一、实验目的

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.权限验证

当验证了用户的身份并允许其登录到SQLServer2000实例之后,在用户必须访问的每个数据库中都要求单独的用户帐户。

在每个数据库中都要求用户帐户可防止用户连接到SQLServer实例并访问服务器上的所有数据库

3.角色

利用角色,SQLServer管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。

SQLServer提供了用户通常管理工作的预定义服务器角色和数据库角色。

服务器角色

●系统管理员:

拥有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)和外键(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默认的用户登录帐号:

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

6

N

主键

姓名

Char

8

N

性别

Bit

2

N

出生日期

smalldatetime

4

N

专业名

Char

10

N

所在系

Char

10

N

联系电话

char

13

Y

表2课程表KC的结构

列名

数据类型

长度

是否允许为空值

默认值

说明

课程号

Char

3

N

主键

课程名

Char

20

N

教师

Char

10

开课学期

Tinyint

1

学时

Tinyint

3

60

学分

Tinyint

2

N

表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

王华

杭州

86960986

310006

0001

200002

李想

富阳

85438769

310010

0003

200003

张丽

杭州

67893542

310017

0002

200004

李华江

萧山

82849873

310101

0001

 

谢谢阅读!

!

!

随心编辑,值得下载拥有!

专业│专注│精心│卓越

 

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

当前位置:首页 > 医药卫生 > 预防医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2