数据库实验报告2-SQL Server完整性验证

合集下载

数据库安全性和完整性实验【模板范本】

数据库安全性和完整性实验【模板范本】

实验9:数据库安全性实验一、实验目的加深对数据库安全性的理解,并掌握SQL Server中有关用户、角色及操作权限的管理方法.二、实验内容1.数据库的安全性实验。

在SQL Server企业管理器中,设置SQL Server的安全认证模式,实现对SQL Server的用户和角色的管理,设置和管理数据操作权限.三、实验原理和步骤1.设置SQL Server的安全认证模式,选择混合模式。

右键服务器属性—安全性:选择SQL Server和Windows身份验证模式.重启服务,生效。

2.账号:sa账号登录3.登录帐号的管理1)将Windows帐号添加到SQL Server 2005中创建操作系统用户-4.数据库用户的管理1)dbo用户;查看banking数据库的dbo用户,查看用户权限。

2)U1用户;创建banking数据库的U1用户,查看用户权限。

5.权限管理1)赋予所创建的U1用户db_datareader角色,查看用户权限2)赋予所创建的U1用户db_datawriter角色,查看用户权限3)赋予所创建的U1用户db_owner角色,查看用户权限4)两种方法赋予所创建的U1用户对banking数据库表customer的select权限,验证并写出sql语句5)两种方法赋予所创建的U1用户对banking数据库表branch的select和对branch_name修改的权限,验证并写出sql语句6)把对loan表的update权限授予所创建的U1用户用户,并允许将此权限再授予其他用户,验证并写出sql语句7)两种方法回收所创建的U1用户对banking数据库表customer的select权限,验证并写出sql语句8)两种方法回收所有用户对banking数据库表loan的update权限,验证并写出sql语句四、实验报告要求要求写出如下设计报告:1.用Transact—SQL写出实验操作的语句2.实验步骤和实验结果。

数据库完整性实验报告

数据库完整性实验报告

北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级学号姓名指导教师张申勇成绩实验题目数据库完整性实验时间 2012.4.20一实验目的1. 熟悉通过SQL对数据进行完整性控制;2. 针对具体应用要求,设计相应的完整性约束。

二实验工具SQL Server 2005利用SQL Server 2005 SSMS及其SQL查询编辑器。

三实验内容和要求使用SQL对数据进行完整性控制(3类完整性、CHECK短语、CONSTRAIN 子句、触发器)。

用实验证实,当操作违反了完整性约束条件时,系统是如何处理的。

根据以下要求认真填写实验报告,记录所有的实验用例。

具体操作内容:创建以下两个关系模式,并分别插入相应的数据。

职工(职工号,姓名,年龄,职务,工资,部门号)其中职工号为主码;部门(部门号,名称,经理名,地址,电话号码),其中部门号为主码;(1)使用SQL语言定义这两个关系模式,并完成以下完整性约束条件的定义;(a)定义每个模式的主码;(b)定义参照完整性;(c)定义职工的年龄不能小于18岁,并且不能超过60岁;(d)职工的姓名不能为空;(e)职工的工资不能为空,且不能小于800;(f)部门名称不能为空且不能重复,定义约束名为UK_dName;(2)使用SQL语言分别向两个表中插入7行记录,验证上面的各种约束条件;(3)将职工的年龄改为不能小于16岁,并且不能大于65岁;(4)定义一个表tbl_Emp_Log(eNO, eSalary, Username, ModiDate);在职工表上定义修改和插入数据的触发器,将插入的职工号和工资数据填入到Emp_log表中,并记录操作的用户和插入时间;如果修改了职工的工资,也把职工号和修改后的工资数据填入到Emp_log表中,并记录操作的用户和插入时间。

使用SQL语句向职工表中插入数据和修改工资,验证触发器的效果。

数据库实验报告

数据库实验报告

实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。

实验内容:具体包括如下三部分。

一、熟悉上机环境。

客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。

具体包括:1.了解SQL Server 环境。

鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。

点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。

因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。

2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。

如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。

3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。

二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。

1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。

数据完整性在SQL SERVER中的实现(自己做的)

数据完整性在SQL SERVER中的实现(自己做的)

(6)例: CREATE TABLE S_B (学号 CHAR(5), 书号 CHAR(5), 借阅时间 DATATIME, 归还时间 DATATIME, CONSTRAINT P_Y PRIMARY KEY (学号, 书号))
1)列级、表级区别:
在列级定义同时定义的约束称为列级完整性约束定义; 作为表的独立的一项定义的完整性约束称为表级完整性 约束。 如果完整性约束涉及到该表的多个属性列,必须定义在 表级上,否则既可以定义在列级也可以定义在表级。 简而言之: 列级约束:列级约束是行定义的一部分,只能应用于一 列上。 表级约束:表级约束是独立于列的定义,可以应用在一 个表中的多列上
4、用户定义的完整性
(1)用户定义的完整性是应用领域需要遵守 的约束条件,其允许用户定义不属于其他任何 完整性分类的特定业务规则。所有的完整性类 型都支持用户定义完整性。
(2)常见的实现机制: 规则(Rule)、创建数据表时所有约束 (Constraint)、触发器(Trigger)、存 储过程(Stored Produre)
2、参照完整性
(1)参照完整性是指在两个表的主码和外码之 间数据的完整性,含义包括: 参照完整性保证被参照表和参照表之间 数据的一致性 可以防治数据丢失或者无意义的数据 可以禁止在从表中插入被参照表中不存 Байду номын сангаас的关键字的记录
(2)定义FOREIGN KEY 约束
语法: Create table myTB1 ( id nvarchar(32) not null primary key, name nvarchar(32), foreign key(id) references myTB(id) )
(3)定义D EFAULT 约束

实验五 SQL SERVER 完整性与安全性 实验报告

实验五 SQL SERVER 完整性与安全性  实验报告

实验五SQL SERVER 完整性与安全性一、实验目的掌握SQL SERVER数据访问控制策略和技术,SQL SERVER数据库管理系统使用安全帐户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。

二、实验内容1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。

2.分别为三个登录名在“gongcheng”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“gongcheng”数据库。

3.授予用户John创建表和视图的权限。

grant create table,create viewto John在“gongcheng”下,安全性—John—属性,选择安全对象,搜索特定对象,选择“gongcheng”表,在权限中选择“创建表”和“创建视图”,如图:即可赋予John“创建表”和“创建视图”的权限。

4.完成以下授权:(1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。

grant inserton Sto tomwith grant option(2)用户Mary对S,P,J三个表有SELECT和INSERT权力grant select,inserton Sto Marygrant select,inserton Pto Marygrant select,inserton Jto Mary(3)用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDA TE权力。

grant delete,update(qty)on spjto Tom(4)把对用户Tom授予的所有权力收回revoke inserton Sfrom Tom cascaderevoke delete,update(qty)on SPJfrom Tom(5)对用户Mary增加SPJ表的SELECT权力。

grant selecton spjto Mary5.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,并授予一定权力,然后用对方为自己创建的登录名和对方的数据库服务器建立连接,进行登录,对对方的数据库服务器进行操作。

广东海洋大学数据库实验报告

广东海洋大学数据库实验报告

实验四数据的完整性、安全性一、实验目的1.掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。

2.掌握SQL Server中有关用户、角色及操作权限的管理方法.3.学会创建和使用规则、缺省。

二、实验内容1 数据库的安全性实验,通过SSMS设置SQL Server的安全认证模式.实现对SQL Server 的用户和角色管理,设置和管理数据操作权限.2数据库的完整性实验。

使用Transact-SQL设计规则、缺省、约束和触发器。

三、实验要求1.数据的完整性实验⑴用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):学生情况表(XSQK)列名数据类型长度是否允许为空值学号Char 6 N姓名Char 8 N性别Bit 1 N出生日期smalldatetime 2专业名Char 10所在系Char 10联系电话char 11 Y课程表(KC)列名数据类型长度是否允许为空值课程号Char 3 N课程名Char 20 N教师Char 10开课学期Tinyint 1学时Tinyint 1学分Tinyint 1 N成绩表(XS_KC)列名数据类型长度是否允许为空值学号Char 6 N课程号成绩CharSmallint32N⑵数据的实体完整性实验用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健②用T-SQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健⑶数据的参照完整性实验①用SSMS为成绩表(XS_KC)创建外键FK_ XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号②用T-SQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)表的课程号⑷数据的用户定义完整性实验用T-SQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束②用SSMS为学生情况表(XSQK)的性别列创建一个检查约束,使得性别的值为男或女③用T-SQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0~100)之间④用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值为60⑤用T-SQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为22.将如下数据分别转换成文本数据或Excel的格式,并分别将其导入数据库的各个表中:学生情况表(XSQK):课程表(KC ):成绩表(XS_KC ):学号 姓名 性别 出生日期 专业 所在系 联系电话 020101 杨颖 0 1980-7-20 计算机应用 计算机 020102 方露露 0 1981-1-15 计算机应用 计算机 020103 俞奇军 1 1980-2-20 信息管理 计算机 020104 胡国强 1 1980-11-7 信息管理 计算机 020105 薛冰 1 1980-7-29 水利工程 水利系 020201 秦盈飞 0 1981-3-10 电子商务 经济系 020202 董含静 0 1980-9-25 电子商务 经济系 020203 陈伟 1 1980-8-7 电子商务 经济系 020204陈新江11980-7-20房建水利系课程号 课程名教师 开课学期 学时 学分 101 计算机原理 陈红 2 45 3 102 计算方法 王颐 3 45 3 103 操作系统 徐格 2 60 4 104 数据库原理及应用 应对刚 3 75 5 105 网络基础 吴江江 4 45 3 106 高等数学 孙中文 1 90 6 107 英语 陈刚 1 90 6 108VB 程序设计赵红韦37053. 理解默认值的概念和作用①用语句创建名为Xi_default,值为“计算机系”的默认值②将默认值Xi_default绑定到学生表中的所在系的属性列上③解除学生表所在系的属性列上的默认值学号课程号成绩④删除默认值Xi_default注:创建默认值的格式:create default 默认值名as ‘默认值’默认值绑定的格式:sp_bindefault 默认值名, <’表名.列名’︱自定义数据类型名称>解除默认值绑定格式:sp_unbindefault <’表名.列名’︱自定义数据类型名称>删除默认值格式:Drop default 默认值名4.理解规则的概念和作用①用语句创建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6②将“rule_ kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109,'C语言','李方',8,64,4)不能正常执行,因为数值8不在规则rule_kkxq所绑定的数据范围内③若不解除规则,能否将规则rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_ kkxq注:创建规则的格式:create rule 规则名as @列名约束条件规则绑定的格式:sp_bindrule 规则名, <’表名.列名’︱自定义数据类型名称>解除规则绑定格式:sp_unbindrule <’表名.列名’︱自定义数据类型名称>删除规则格式:Drop rule 规则名5.数据的安全性实验:(1)设置身份验证模式①写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采用Windows身份验证还是混合身份验证模式。

数据库的完整性和安全性实验报告

数据库的完整性和安全性实验报告

信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(1)掌握数据库约束的概念;(2)熟悉SQL SERVER 的完整性约束技术。

(3)了解SQL SERVER 的违反完整性处理措施。

(4)了解登录账户的管理理念与具体方法。

(5)了解数据库用户的管理的要则。

(6)了解用户权限管理的内涵与方法。

二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤(一)测试完整性运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。

然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。

1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2)PRIMARY KEYdnameV ARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept V ALUES('D1','计科系');----正常插入INSERT INTO dept V ALUES('D2','电信系');----正常插入INSERT INTO dept V ALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则INSERT INTO dept V ALUES('D2','机械系'); ----违反dno 主键(UNIQUE )INSERT INTO dept V ALUES('D3',NULL); ----违反dname 的NOT NULL 规则INSERT INTO dept V ALUES('D3','计科系'); ----违反dname 的UNIQUE 规则INSERT INTO dept V ALUES('D3','机械系');----正常插入(2)删除数据DELETE FROM dept WHERE dno='D3';----正常删除(3)修改数据UPDA TE dept SET dname='计算机科学系' WHERE dno='D1';----正常修改UPDA TE dept SET dname='电信系' WHERE dno='D1'; ----违反dname的UNIQUE规则UPDA TE dept SET dname=NULL WHERE dno='D1'; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:sno CHAR(2) PRIMARY KEYsname V ARCHAR(20) NOT NULL,ssex CHAR(2) NOT NULL, CHECK(ssex in('男','女'))sage INT NOT NULL,dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student V ALUES('S1','张刚','男',20,'D1');----正常插入INSERT INTO student V ALUES('S2','李梅','女',21,'D2');----正常插入INSERT INTO student V ALUES('S2','吴敏','男',20,'D1'); ----正常插入INSERT INTO student V ALUES(NULL,'吴敏','男',20,'D1'); ----违反sno 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','男',NULL,'D1'); 违反sage 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','M',20,'D1'); 违反ssex 的CHECK规则INSERT INTO student V ALUES('S3','吴敏','男',20,'D3'); ----正常插入INSERT INTO student V ALUES('S3','吴敏','男',20,'D1');----正常插入(2)删除数据DELETE FROM student WHERE sno='S3'; ----正常删除(3)修改数据UPDA TE student SET sname='赵强',dno='D2' WHERE sno='S1'-----正常修改UPDA TE student SET ssex='F' WHERE sno='S1'; -----违反ssex的CHECK 规则UPDA TE student SET sno='S2' WHERE sno='S1'; -----违反sno的主键(UNIQUE)规则UPDA TE student SET dno='D3' WHERE sno='S1'; 违反dno 的外键规则UPDA TE dept SET dno='D3' WHERE dno='D1';----检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno='D2';----检查dno的外键ON DELETE规则,观察运行后效果(二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。

SQL-Server-数据库的完整性和安全管理

SQL-Server-数据库的完整性和安全管理

实验(shíyàn)6 SQL Server 数据库的完整性和安全(ānquán)管理专业(zhuānyè)班级学号姓名(xìngmíng) 报告(bàogào)日期 11.13 .实验类型:●验证性实验○综合性实验○设计性实验实验目的:学习构建SQL Server 2012 数据库的完整性约束(实体完整性,参照完整性,用户自定义完整性)实验内容和步骤:1.创建和打开SQL Server 2012数据库。

2.使用SQL Server 2012数据表的设计器设计并创建表, 对表添加主键, 对表添加用户定义的约束条件, 设置字段的非空约束。

3.使用SQL Server 2012在表上查询的查询功能(人机会话查询和手工录入查询命令)。

4. 在SQL Server 2012数据库中建立表间联结5. 在SQL Server 2012数据库中建立表间建立参照关系。

参考.叶符明王松主编. SQL Server 2012 数据库基础及应用.北京理工大学出版社,2013.10第83-106页实验报告:根据实验情况和结果, 撰写并递交实验报告。

实验总结(学会了......; 掌握了......; 训练了......; 发现了......; 今后学习中......有待提高。

)电子报告word文件命名规则:专业班级-学号后两位-实验X-姓名.doc, 如信息123班学号为201212030315的郭海涛同学实验7报告word文件命名则应是:信息123-15-实验7-郭海涛.doc, 其中 .doc是Word文件扩展名。

实验内容1.创建和打开SQL Server 2012数据库2.使用SQL Server 2012数据表的设计器设计并创建表, 对表添加(tiān jiā)主键, 对表添加用户定义的约束条件, 设置字段的非空约束。

3.使用SQL Server 2012在表上查询的查询功能(人机会(jīhuì)话查询和手工录入查询命令)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JNU本科实验报告专用纸
课程名称数据库上机实验成绩评定实验项目名称SQL Server完整性验证指导教师
实验项目编号08060113 实验项目类型验证性实验地点C305 学生姓名学号
学院电气信息学院系专业计算机科学与技术实验时间2011年10月30日下午~月日午温度℃湿度(一)实验目的
熟悉通过SQL对数据进行安全性控制,完成作业的上机练习。

(二)实验内容和要求
使用SQL对数据进行安全性控制,包括授权和权力回收。

操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力。

根据以下要求认真填写实验报告,记录所有的实验用例。

(三)主要仪器设备
仪器:计算机
实验环境:Windows7 +SQL Server2008
(四)实验内容与完成情况
1.创建新登录名以及用户,对用户进行授权。

(1) 先在图形用户界面中创建一个数据库,然后对于这个数据库创建所需要用到的各个用户以及相关的关的登录名。

(参考课本习题,假定有数据库company,库中有两个表职工表a和部门表b)。

创建登录名和创建用户
(2)用图形用户界面尝试对用户进行权限赋予:
a)赋予用户王明对两个表有Select和Insert的权力。

b)赋予用户李勇对职工表具有Select权力,对工资字段具有更新权力:
在安全性下可查看用户当前的权限
(3)接下来使用SQL语句授权对用户进行授权
验证结果如下图,我们可以看到用户李勇的权限增添了插入和删除选项
(4)最后再重新建一个用户昊民,通过SQL语句赋予对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。

验证如下:
2.收回权限并加以验证。

(1)用SQL语句收回用户李勇对表a的插入、删除权限;收回用户王明对表b的选择、插入权限:
验证结果如下图:可以用户李勇没有了插入、删除权限;而用户王明原来具有a、b表的选择、插入权限,收回用户王明对表b的选择、插入权限后,表b不再是王明的安全对象。

(李勇的权限显示)(王明的权限显示)
JNU本科实验报告专用纸(附页)
(五)出现的问题与解决方法
本次实验数据量不大,只有部分关于SQL语句的调试问题。

查询SQL语句帮助后解决,在此不再敖述。

(六)实验结果与结论心得
实验结果如以上截图所示。

通过本次实验,我了解了基本的赋予权限和收回权限的相关操作,能通过SQL语句对数据进行安全性控制,对于数据表与用户间的权限和安全性有了更深一步的理解和认识。

相关文档
最新文档