当前位置:文档之家› 实验3:数据库安全性

实验3:数据库安全性

实验3:数据库安全性
实验3:数据库安全性

实验3:数据库安全性

第1个实验.安全性定义——第5章实验八

使用订单数据库完成下面的实验内容:

(1) 分别创建登录账号user01、user02,其密码皆为p888888,并设置为订单数据库OrderDB的用户。

sp_addlogin'user01','p888888','orderdb'

sp_addlogin'user02','p888888','orderdb'

(2) 创建登录账号login03,并加入到OrderDB数据库中,其用户名为user03。

sp_adduser'user03','login03'

(3) 将员工表的所有权限授予全部用户。

grant all privileges on customer to public

(4) 授予user03用户对Product表的查询权限,对Employee表的编号、名称的查询和更新权限。

grant select on product to login03

grant

select(employeeno,employeename),update(employeeno,employeename)on employee to login03

(5) 创建角色r3、r4,将订单明细表所有列的SELECT权限、UNIT_PRICE列的UPDA TE 权限授予r3。

sp_addrole'r3'

sp_addrole'r4'

grant select,update(price)on orderdetail to r3

(6) 收回全部用户对员工表的所有权限。

revoke all on employee from public

(7) 将user01、user02两个用户赋予r3角色。

sp_addrolemember user01,r3

sp_addrolemember user02,r3

(8) 收回user02对订单明细表所有列的SELECT权限。

sp_addrole user02

revoke select on orderdetail from user02

(9) 在当前数据库中删除角色r4。

sp_droprole r4

(10) 授予user01建表和建视图的权限,user01用户分别建立一张表和一个视图(表和视图自定),然后将该表和视图的查询权限授予user02和user03。

由于数据库中存在user01而user01的密码未知user01用user04 代替

grant create view to user04

创建表格Customer

create table Customer(

customerNo char(9)not null primary key,/*客户号*/ check(customerNo like

'[C][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),

customerName varchar(40)not null,/*客户名称*/ telephone varchar(20)not null,/*客户电话*/ address char(40)not null,/*客户住址*/ zip char(6)null/*邮政编码*/ )

创建视图Customerno

create view Customerno as

select customerno,customername

from customer

grant select on customer to user02

grant select on customerno to user02

grant select on customer to user03

grant select on customerno to user03

第2个实验.安全性检查——第5章实验九使用订单数据库完成下面的实验,记录详细的操作过程:

(1)用户user07在订单数据库中创建一张表Table1。

sp_addlogin'user07','123456','orderdb'(master 中)

sp_adduser user07,user07(orderdb中)

grant create table to user07

create table Tabel (

productNo char(9)not null primary key,/*商品编号*/ productName varchar(40)not null,/*商品名称*/ productClass varchar(20)not null,/*商品类别*/ productPrice numeric(7,2)not null,/*商品定价*/

)

(2)用户user02对表Table1和表OrderDetail执行了插入和查询操作。

grant select to user02(sa 登录)

grant insert to user02

(3)用户user03建立两张表Table2和Table3和一个视图View1,然后将该表和视图的查询权限授予user05和user06,并具有转授权限。

1、sp_addlogin'user05','123456'(master)

sp_addlogin'user06','123456' //创建用户

2、 sp_adduser user05,user05(orderdetail)//添加用户

sp_adduser user06,user06

3、 grant create table,create view to user03(sa登录 orderdb中)//赋

予权限

4、创建表Table2和Table3:

create table table2(

table2no char(10)not null primary key,

table2name varchar(30)not null,

)

create table table3(

table3no char(10)not null primary key,

table3name varchar(30)not null,

)

5、创建视图View1:

create view view1

as

select table2no

from table2

6、赋予user05 和user06权限

grant select on table2 to user05 with grant option

grant select on table3 to user05 with grant option

grant select on table2 to user06 with grant option

grant select on table3 to user06 with grant option

grant select on view1 to user05 with grant option

grant select on view1 to user06 with grant option

(4)user06用户需要对Product表进行插入操作,然后查询Product表的所有记录。

1、权限授予:grant select,insert to user06(sa登录 orderdb 中)

2、用户登录:

3、操作:

insert product values('P2008004','CPU','处理器','1000')

select*

from product

(5)在订单数据库中创建两个角色r5和r6,角色r5具有创建表和视图的权限,角色r6具有对Customer表的查询、插入权限,Employee表的查询、更新和插入权限,OrderMaster 表的所有权限。

sp_addrole r5

sp_addrole r6

grant create table,create view to r5

grant select,insert on customer to r6

grant select,insert on employee to r6

grant update on employee to r6

grant all on ordermaster to r6

(6)用户user05在订单数据库中插入一条客户信息,并查询了所有客户的订货记录。

1、权限授予grant insert,select to user05(sa登陆,orderdb)

2、插入操作

用user05登陆

insert customer values('C20080002','长城科技有限公司','0791-897456','江西省南昌市经开区','330013')

3、查询操作

select a.customerno,a.customername,b.orderdate,b.ordersum

from customer a left outer join ordermaster b on a.customerno=b.customerno

(7)用户user05将user03用户创建的表和视图的查询权限授予了用户user07,user07用户对表Table2进行了插入操作。

1、user5登陆

2、权限授予

grant select on user03.table2 to user07

grant select on user03.table3 to user07

grant select on user03.view1 to user07

3、uer07登陆

4、插入操作

1)插入权限增加:

grant insert on user03.table2 to user07(orderdb)2)插入操作

insert user03.table2 values('0103304','张三')

(8)user07用户具有角色r5,同时创建了表Table4。

1)角色授予

sa登陆在orderdb中

sp_addrolemember r5,user07

2)user07登陆创建

create table table4(

table4no char(10)not null primary key,

table4name varchar(30)not null

)

数据库设计性实验报告

数据库系统概论实验报告 一、实验题目 小型CMS博客系统的设计与实现 二、实验要求 利用学习的数据库设计的方法和步骤,为选择的应用设计数据库、必要的索引、视图、编写应用程序。 三、总的设计思想,及环境语言、工具等 1、建立系统的目的,系统总体概况的介绍 进行博客系统开发的主要目的是为了提高自己的实践能力、学会自主开发独立程序,学会将所学知识应用于实践中,并在实践中不断学习。在大学里本人所学的知识大多数是从课本上得到的,而这次是要通过动手来实践,实习对本人来说是一次很好的锻炼。 本人所要实现的是一个小型CMS博客系统,用户在注册后可以实现在后台操作数据库更改网站标题、版本号、管理博客、管理日志分类等,在前台可以查看已公开的博客等。本次课程设计初步目标是实现博客的基本功能,在这个基础上对功能进行扩充。 2、选用的语言 利用WINDOWS XP结合DREAMWEAVER和access搭建ASP的环境平台,语言采用强大的vbscript。采用了IIS5.1。 3、需求分析的方法和结果 通过对现行博客系统的基本功能进行调查,明确了CMS博客系统由查看博客、发表博客、回复博客、管理员通过后台管理登录管理日志分类、修改删除博客、发表新文章、设置主页信息等等。用户对系统的描述如下。 a)用户基本功能 1)匿名用户可以查看用户公开的博客,并且可以通过注册申请成为正式用户。 b)管理员基本功能 1)发表新文章。 2)管理文章、如添加删除等。 3)管理分类,如添加、删除、重命名。 4)设置主页上显示的博客条数或者版本号。 数据流图

数据库逻辑模型 将图书馆管理系统的E-R图转换为关系数据库的数据模型,其关系模式为: 博客用户(用户,密码,邮箱),其中用户为主码; 版本信息(版本ID,URL,主页底部信息,副标题),其中版本ID为主码; 日志分类信息(编号,分类名称,基本表述(在鼠标放到分类上后显示的小标签)) 将CMS系统的数据库名定为“SimpleCMS” 数据库模式的规范化 各表的函数依赖集: F博客用户={用户→密码}; F类别={分类ID→名称,分类ID→基本描述}; F版本信息={编号→网站名,编号→网址,编号→底部信息,编号→副标题信息}; 上述关系模式中不存在对非码依赖的表达式,所有的非主属性对码完全并直接依赖,由此证明,博客数据库中各表均服从BCNF,其规范化程度较高,数据库设计合理。 4、E-R图

数据库原理实验报告-实验三-数据完整性与安全性控制

一、实验内容、步骤以及结果 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 非空约束:取消表S中sbirth的勾。可能需要重建表。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命 令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’ -->保 存 (3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。 唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加--> 是否唯一改为‘是’-->名称改为‘us_sname’ -->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存

(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查 条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表 和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint) 删除约束:单击数据库Student-->表-->单击S-->展开键、约束。一一删除即可。

数据库系统实验三综述

实验题目实验三创建和使用视图、索引、存储过程 一、实验目的 1、理解视图、索引、存储过程的定义、索引、存储过程的优点与、索引、存储过程的工作原理; 2、掌握在查询分析器和企业管理器中创建、修改及删除视图、索引、存储过程; 3、掌握创建视图、索引、存储过程的SQL语句的用法;并能够熟练利用视图向表中插入、删除和修改数据。 4、掌握使用视图来查询数据。 二、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows; 2.数据库管理系统:SQL Server 2005; 三、实验方法、步骤及结果测试 (一)、视图 1、建立“计算机学院”的学生基本情况视图ies_student_view,该视图包括计算机学院所有学生的学号、姓名、性别、出身年月、专业名称。 2、执行ies_student_view视图并观察结果。 3、建立课程1(上课编号)的学生名册的视图,该名册包括学生的学号、姓名、专业名称和这门课的成绩;并查询结果。 4、建立统计不及格情况的视图,列出不及格学生的学号、姓名和不及格的课程代码; 5、执行视图并观察结果。 6、修改视图ies_student_view,使该视图包括所有学生的学号、姓名、性别、出身年月、学院名称、专业名称。 7、执行ies_student_view视图并观察结果。 8、删除视图ies_student_view。并查询结果。

查询视图SQL语句及执行结果截图

(二)、索引 在student_course 表(学生选课表)的学生学号(sno )列上创建索引sc_sno_index

(三)、存储过程 题目(1)创建存储过程list_student_department,该存储过程接收学院代码作为输入中某个院系学生的全部信息。 查询分析器执行情况: 题目(2)使用SQL语句执行存储过程list_student_department

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

201509-实验三:数据库的安全性课案

实验三:数据库的安全性 一、实验目的 熟悉通过SQL对数据进行安全性控制。 二、实验平台 SQL Server 2008 三、实验内容和要求 1、掌握Windows登录名和SQL SERVER登录名的建立与删除方法; 2、掌握数据库用户创建与管理的方法; 3、掌握服务器角色的用法; 4、掌握数据库权限授予、拒绝和撤销的方法; 四、实验步骤 (一)授权与回收。 [例1]授权。在SQL Sever 中建立多个用户,给他们赋予不同的权限,然后查看是否真正拥有被授予的权限了。 1)建立用户U1、U2、U3、U4、U5、U6、U7。 2)以系统管理员身份对这7个用户进行授权。 [例1-1]把查询Student 表的权限授给用户U1。 GRANT SELECT ON Student TO U1; [例1-2]把对Student 表和Course 表的全部操作权限授予用户U2 和U3。 GRANT ALL PRIVILEGES ON Student TO U2,U3; GRANT ALL PRIVILEGES ON Course TO U2,U3; [例1-3]把对表SC 的查询权限授予所有用户。 GRANT SELECT ON SC TO PUBLIC; [例1-4]把查询Student 表和修改学生学号的权限授给用户U4。 GRANT UPDATE (Sno) , SELECT ON Student TO U4; [例1-5]把对表SC 的INSERT 权限授予U5,并允许U5 将此权限再授予其他用户。 GRANT INSERT ON SC TO U5

WITH GRANT OPTION; [例1-6]用户U5 将对表SC 的INSERT 权限授予U6,并允许将权限转授给其他用户。 首先应该以U5 的身份重新登录数据库,然后再进行授权。 GRANT INSERT ON SC TO U6 WITH GRANT OPTION; [例1-7]用户U6 将对表SC 的INSERT 权限授予U7。 首先应该以U6 的身份重新登录数据库,然后再进行授权。 GRANT INSERT ON SC TO U7; 3)在授权之后验证用户是否拥有了相应的权限。 在执行完上面七个语句之后,我们可以分别以不同用户的身份登录数据库,进行相关操作,检查系统是否许可。例如: [例1-8]U4 更新Student 表的学生学号。 UPDATE Student SET SNO = ‘95101’ WHERE SNO = ‘95001’; 显示更新 1 条记录,即U4 用户拥有了对Student 表Sno 的更新权限。[例1-9]U7 向SC 表中插入一条数据:(95020,20,88)。 INSERT INTO SC V ALUES(‘95020’,’20’,88); 显示插入 1 条记录,即用户U7 拥有了对SC 表的插入权限。 [例2]回收权限。将[例1]授予的权限部分收回,检查回收后,该用户是否真正丧失了对数据的相应权限。 1)回收权限。 [例2-1]收回用户U4 修改学生学号的权限。 当前用户为SYSTEM,直接执行下列语句: REVOKE UPDATE (SNO) ON Student FROM U4; [例2-2]收回所有用户对表SC 的查询权限。 REVOKE SELECT ON SC FROM PUBLIC; [例2-3]收回用户U5 对SC 表的INSERT 权限。 将权限INSERT 授予给用户U5 时,允许该用户将权限再授予给其他用户;之后,用户U5 将INSERT 权限转授给了U6,U6 又将权限转授给U7。因此,将用户U5 的INSERT 权限收回的时候必须级联收回,不然系统将拒绝执行该命令: REVOKE INSERT ON TABLE SC FROM U5 CASCADE;

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

数据库原理实验报告二.pdf

LIAOCHENG UNIVERSITY 计算机学院实验报告 【2015 ~2016 学年第 2 学期】 【一、基本信息】 【实验课程】数据库原理与应用 【设课形式】独立□非独立【课程学分】 【实验项目】实验二、SQL数据操作及查询 【项目类型】基础综合□设计□研究创新□其它[ ]【项目学时】4【学生姓名】傅雪晨【学号】59 【系别专业】电子商务 【实验班组】 【同组学生】 【实验室名】综合实验楼 【实验日期】【报告日期】 【二、实验教师对报告的最终评价及处理意见】 实验成绩:(涂改无效) 指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案

【三、实验预习】 实验条件(实验设备、软件、材料等): 实验2 SQL数据操作及查询 实验目的: 1. 向实验1建立的表中添加数据(元组), 掌握INSERT语句的用法; 2. 修改基本表中的数据, 掌握UPDATE语句的用法; 3. 删除基本表中的数据,掌握DELETE语句的用法; 4. 体会数据完整性约束的作用, 加深对数据完整性及其约束的理解。 5. 熟练掌握SELECT语句,能够运用该语句完成各种查询。 实验内容: 1.使用INSERT语句将教材P82表中的数据添加到数据库STUDENTDB中. 2. Insert into student59 select'1','李勇','男','20','CS','',''union select'2','刘晨','女','19','CS','',''union select'3','王敏','女','18','MA','',''union select'5','张立','男','19','IS','','' select*from student59 select*from course59 select*from sc59 alter table course59NOCHECK Constraint fk_cpno Insert into course59 select'1','数据库','5','4'union select'2','数学','','2'union select'3','信息系统','1','4'union select'4','操作系统','6','3'union select'5','数据结构','7','4'union select'6','数据处理','','2'union select'7','PASCAL语言','6','4' alter table course59CHECK Constraint FK_course59_course59 Insert into sc59 select'1','1',92 union select'1','2',85 union select'1','3',88 union select'2','2',90 union select'2','3',80 alter table sc59CHECK Constraint fk_S_c alter table sc59NOCHECKConstraint fk_S_c

数据库安全性和完整性实验

实验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.实验步骤和实验结果。 3.实验中的问题和提高。 4.SQL Server中有的安全性功能。 五、注意事项 1.用户、角色和权限的职能,以及它们之间的关系。

数据库系统应用与开发--实验三

实验三JDBC基础(2) 一、相关知识点 1、JDBC基本概念 2、JDBC简单查询、preparedstatement、连接查询、集函数查询等 Odbc: Jdbc:

二、实验目的: 理解Java连接数据库的基本概念。理解Statement对象、PreparedStatement对象和ResultSet对象。 三、实验内容: 1、游标滚动模式试验。 第一步:将RsTest类放入对应的工程包中https://www.doczj.com/doc/0016992567.html,.zucc.booklib.rstest; 第二步:在BeanSystemUser表中增加一些测试数据; 第三步:运行程序,并查看执行结果。 第四步:将游标滚动模式改成TYPE_SCROLL_SENSITIVE,运行程序,并查看结果 【实验结果与分析】 A、第三步、第四步运行结果截图?并说明区别。 第三步: 第四步:修改前

第四步:修改后 B、

2、利用ResultSet对象进行数据修改 第一步:将RsTest2类放入对应的工程包中https://www.doczj.com/doc/0016992567.html,.zucc.booklib.rstest;

第二步:运行程序,并查看执行结果。 第三步:删除rs.updateRow(); 允许程序,并查看执行结果 【实验结果与分析】 A、请给出第二步、第三步的执行截图。说明区别,并分析原因。 第二步: 第三步: 3、利用PreparedStatement对象修改实验二的两个对出版社的查询。 第一步:在实验二的基础上,把传入的查询条件(出版社名称)改成带单引号的字符串,并运行程序。查看执行结果。 第二步:将原来的查询函数,改成用PreparedStatement。运行程序,查看执行结果。通用把传入的查询条件(出版社名称)改成带单引号的字符串,并运行程序。查看执行结果。 【实验结果与分析】 A、第一步执行结果截图。

数据库实验报告二

《数据库原理》实验报告 实验三: 数据库完整性与安全性控 制 实验四: 视图与索引 学号姓名 班级日期 2013302534 杨添文10011303 2015.10.1 7 实验三:数据完整性与安全性控制 一、实验内容 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 (3)唯一约束:为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。 (4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 (5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查 条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表为分别是S 表和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除上小题中已经创建的各种约束,用SQL语言分别重新创建第1小题中的(2)-(6)小题。(15分,每小题3分,提示:alter table add constraint)(2)alter table s add constraint pk_sno primary key(sno) (3)alter table s add constraint uk_sname unique(sname) (4)alter table s add constraint a default('男')for ssex (5) alter table sc add constraint ck_grade check(grade between 0 and 100) (6) alter table sc add constraint fk_sno foreign key(sno)references s(sno) alter table sc add constraint fk_cno foreign key(cno)references c(cno)

数据库的安全性实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验:数据库的安全性实验 课程:数据库原理及应用B 班级:网络1203 学号: 学生姓名: 任课教师:孟彩霞

一、实验目的 (1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法(2)理解登录帐号的概念,掌握混合认证模式下登录帐号的建立与取消方法 (3)掌握混合认证模式下数据库用户的建立与取消方法 (4)掌握数据库用户权限的设置方法 (5)理解角色的概念,掌握管理角色技术 二、实验内容 (1)在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 (2)创建、管理数据库服务器的登录账号。 (3)创建、管理数据库用户。 (4)管理用户权限。 (5)创建、管理数据库角色。 三、实验环境 Windows7 SQL SERVER 2012 四、实验前准备 课本 上机使用代码 五、实验步骤 1.在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 2.创建、管理数据库服务器的登录账号。用T-SQL语句创建、查看、删除登录账号。 创建一个名为Student、密码为111、使用的默认数据库为JWGL的登录账号。 EXEC sp_addlogin ‘student’,’111’,’JWGL’查看登录账号EXEC sp_helplogins 删除登录账号为EXEC sp_droplogins ‘student’ 3.创建、管理数据库用户。 用T-SQL语句创建、查看、删除数据库用户。 为数据库JWGL创建一个用户user1,该用户登录SQL Server服务器的账号为wang,登录密码为secret,相应的程序代码为: EXEC sp_addlogin ‘wang’, ‘secret’, ‘JWGL’ GO EXEC sp_grantdbaccess ‘wang’, ‘user1’查看数据库用户为EXEC sp_helpuser 删除数据库中的“wang”用户为EXEC sp_revokedbaccess ‘wang’ 4.管理用户权限。 使用T-SQL语句完成第3章习题12中(1)~(3)的用户管理和用户权限管理。企业管理器: (1)允许用户李明对Orders表进行插入、删除操作。 GRANT INSERT ,DELETE ON Orders TO ‘李明’

数据库系统实验报告 实验三 数据控制(安全性)..

《数据库系统概论》实验报告 题目:实验三数据控制(安全性) 班级姓名学号日期2014年6月6日 一、实验目的 1.通过SQL对数据库进行安全性控制 2.完成教材中例题的上机练习 二、实验平台 微软SQL Server 2000或以上版本。 对于SQL Server 2000,使用查询分析器运行SQL语句,对于SQL Server 2005以上的版本,使用SQL Server Management Studio运行SQL语句。 三、实验内容和要求 使用SQL对数据进行安全性控制,包括授权和权力回收。 操作完成后,查看授权用户是否真正具有所授予的数据操作权利,在权力回收操作之后,用户是否确实丧失了所回收的数据操作权力。 在前几次实验中已经建立了实验数据库,继续在此数据库上进行实验所要求的各项操作。认真填写实验报告,记录所有的实验用例。 四、实验步骤 1.以管理员sa登录数据库,新建DB数据库,然后运行如下SQL语句,创建 我们前几次实验所建立的表。 CREATE TABLE course ( Cno char(4) NOT NULL, Cname char(40) DEFAULT NULL, Cpno char(4) DEFAULT NULL, Ccredit smallint DEFAULT NULL, PRIMARY KEY (Cno) ) ; -- -- 转存表中的数据'course' -- INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('1', '数据库', '5', 4); INSERT INTO course (Cno, Cname, Cpno, Ccredit) V ALUES ('2', '数学', NULL, 2);

数据库实验报告实验二

湘潭大学 数据库实验报告 实验名称SQL操作 班级软件工程一班 指导老师郭云飞(老师)学生姓名汤能武 系(院)信息工程学院实验时间2011年12月

SQL操作 一、实验目的 1.了解和掌握MS SQL Server 工具的使用; 2.熟悉掌握SQL' 3.训练学生设计与编写过程,函数与触发器的能力; 二、实验环境 1. 硬件:数据库服务器,客户机,局域网; 2.软件:MS SQL Server 2008 ,建模软件; 三、实验内容 根据给定的问题建立数据库模型,在MS SQL Management Studio 中建立该数据库,并利用SQL语句建立表格与视图,录入数据,进行查询,插入,删除,修改等操作,编写过程,函数,触发器等; 给定问题如下: 1.一个学校有若干教学楼和若干班; 2.一个教室有若干教室和若干管理人员; 3.一间教室只有一个管理人员,但一个管理人员可以管理若干个教室; 4.每周7天,每周上午,下午,晚上都可以安排上课,每周的课表都不变; 5.一间教室或班在一段时间内只能安排一堂课,但可以是合班上课;

四、实验准备 1.理论知识预习及要求 ①使用SQL语句建立数据库; ②使用SQL语句进行查询,修改等操作; ③使用SQL语句建立过程,函数,触发器等; ④使用SQL创建数据表; 2.实验指导书预习及要求 上机前先预习数据库原理指导书的实验,理解和掌握SQL语言的常用操作。 五、实验原理或操作要点简介 注意服务器要先启动,才能与服务器建立连接。 使用SQL命令,完成预定功能。 六、实验步骤 1. 分析给定问题,设计E-R 模型;

2.根据E-R图设计出该问题的关系数据模型,分析数据模型并规范之;关系模型

实验一 数据库模式设计及建立实验报告

长春大学计算机学院科学与技术专业 数据库原理实验报告 实验名称:实验一数据库模式设计及建立 班级:姓名:学号: 实验地点:日期: 一、实验目的: 1.了解SQL SERVER 2005/2008系统或KingBase ES V7.0的使用; 2.基本掌握SQL的数据定义。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+(实验一),(如:041540538张三(实验一)),提交到SPOC学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 3.将本次实验所建的数据库做好备份,以备以后实验使用。 【实验环境】 1.SQL SERVER 2005/20085; 1.KingBase ES V7.0 ,人大金仓。 【实验内容和步骤】 1.熟悉SQL SERVER 2005/2008系统。 (1)启动“SQL Server Managemet Studio”,新建数据库和关系(表) ①鼠标单击“开始/所有程序/Microsoft SQL server 2008/SQL Server Managemet Studio”启动“SQL Server Managemet Studio”,SQL Server Managemet Studio(SSMS)是一个集成环境,用于访问、配置、控制、管理和开发SQL Server 的所有组件,SSMS将大量图形工具与丰富的脚本编辑器相结合,使各种技术水平的开发人员和管理员都可以访问SQL Server; ②在“SQL Server Managemet Studio”中左窗口“对象资源管理器”中,单击“SQLEXPRESS”的左侧“+”,弹出下拉菜单; ③在上一步的下拉菜单中,鼠标右键单击“数据库”,在弹出的菜单中选择“新建数据库”,在弹出的对话框中,输入数据库名,同时可以进行存储位置的设置; ④在数据库文件夹下,出现新建的数据库文件夹; ⑤点击所建数据库文件名左侧的“+”,弹出下拉菜单; ⑥在上一步弹出的下拉菜单中,鼠标右键单击“表”,弹出下拉菜单,单击“新建表”即可在此数据库文件夹中建立关系(表)了。 (2)在“对象资源管理器”的上方有一个“新建查询”图标,单击“新建查询”,可使用SQL 语言进行对关系的操作 ①单击“新建查询”后,在“对象资源管理器”窗口上部出现一个工具栏,右侧弹出一个窗

数据库安全性与完整性实验

数据库原理及应用 实验报告 题目:数据库安全性与完整性实验 专业:网络工程 班级: 学号: 姓名: 太原工业学院计算机工程系 2016年10 月15日一、实验目的与要求 目的: 使学生加深对数据安全性与完整性实验的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法,熟悉通过SQL语句副i数据进行完整性控制。 要求: 1.数据库的安全性实验,在SQL Server企业管理器中设置SQL server的安全认证模式,实现对SQL server的用户和角色管理,设置和管理数据操作权限。 2.指出用户和角色的区别 二、实验内容 1.设置SQL server的安全认证模式(windows或SQL server和Windows(s)认证模式)、。 2.登陆的管理 创建一个登录用户 3.数据库用户的管理 登录用户只有成为数据库(Database User)后才能访问数据库。每个数据库的用户信息都存放在系统表Sysusers中,通过查看Sysusers表可以看到该数据库所有用户的情况。SQL Server的数据库中都有两个默认用户:dbo(数据库拥有者用户)和(dba)。通过系统存储过程或企业管理器可以创建新的数据库用户。 4.角色的管理 创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。 5.在学生表中定义主键、外键约束 6.在课程表的“课程名”字段上定义唯一约束 7.在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100. “课程号”字段只能输入数字字符 8.定义规则,并绑定到学生表的“性别”字段,使之只能取“男、女”值 9.在学生表中增加出生年月字段,定义缺省,并绑定到学生表的出生日期上,使之只能取当前日期。

数据库系统实验报告_实验三_数据控制(安全性)

可得到最后界面如下: 3.以sa用户(DBA)登录,运行教材上 4.2.4中的例1~例7对7个新用户授权。 每运行一个例子后,以相应的用户名重新登录,验证新用户是否具有授予的权限。 注:SQL Server中的权限授予与回收命令与教材例题上的细节有所不同,这里只写出在SQL 2000中的权限授予与回收命令语句。 【例1】把查询student表的权限授给用户u1。 GRANT SELECT

TO u1; 执行完授权语句后,用u1登录,验证其是否已有查询权利。 重新连接数据库,登录界面如下: 用u1登录后,执行一条SELECT命令,显示了查询结果如下所示,说明u1已具有了对student表的查询权限。 【例2】把对student表和course表的全部操作权限授予用户u2和u3。 GRANT ALL PRIVILEGES ON student TO u2,u3; GRANT ALL PRIVILEGES

TO u2,u3; 执行完授权语句后,用u2登录,验证其是否已有所有权利。 用u2登录后,执行两条SELECT命令,显示了查询结果如下所示,说明u2已具有了对student表的查询权限,再执行INSERT命令,DELETE命令,UPDATE 命令,同样可得到结果。说明u2已具有了对student表和SC表的所有权限。 同u2一样,u3也已具有了对student表和SC表的所有权限。 【例3】把对表SC的查询权限授予所有的用户。 GRANT SELECT ON SC TO PUBLIC; 【例4】把查询student表和修改学生学号的权限授予用户u4。 GRANT UPDATE(Sno),SELECT ON student

SQL数据库实验报告 实验二

实验2 SQL Server数据库的管理 1.实验目的 (1)了解SQL Server 数据库的逻辑结构和物理结构的特点。 (2)掌握使用SQL Server管理平台对数据库进行管理的方法。 (3)掌握使用Transact-SQL语句对数据库进行管理的方法。 2.实验内容及步骤 (1)在SQL Server管理平台中创建数据库。 ①运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。 ②右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。 (2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。 (3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。指定“最大文件大小”为5MB。修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。 (4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL 语句CREATE DA TABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 (5)在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。 (6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 (7)使用SQL Server管理平台将studb数据库的名称更改为student_db。 (8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。 3.实验思考 (1)数据库中的日志文件是否属于某个文件组? (2)数据库中的主数据文件一定属于主文件组吗? (3)数据文件和日志文件可以在同一个文件组吗?为什么? (4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库? (5)能够删除系统数据库吗?

数据库系统原理与设计(第二版)实验一至实验三

实验一 1-1.查询员工的姓名、职务和薪水 select employeeName,headShip,salary from employee 图1-1 2.查询名字中含有“有限”的客户姓名和所在地 select CustomerName,address from Customer where CustomerName like '%有限%'

3. 查询出姓“张”并且姓名的最后一个字为“梅”的员工。 select * from employee where employeeName like '张%梅' 图1-3 4. 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示 SELECT employeeName,department,address, isnull (convert(char(10),birthday,120),'不详')出生日期, case sex when 'M'then '男' when 'F'then'女' end as 性别 from employee where (address like '%上海%'or address like '%南昌%')and sex='F'

5. 查询出职务为“职员”或职务为“科长”的女员工的信息 select * from employee where (headship='职员' or headship='科长') and sex='F' 图1-5 6. 选取编号不在“C20050001”和“C20050004”的客户编号、客户名称、客户地址。 Select * from Customer where CustomerNo not in ( 'C20050001' ,'C20050004')

数据库实验报告2.

实验报告 ( 2015 / 2016 学年第 2 学期)题目:数据库系统原理 专业:物联网工程 学生: 班级学号: 指导教师: 指导单位:物联网学院 日期: 2016-5-12

实验名称:约束、视图、索引与存储过程 一、 实验容和要求 1、用create database 命令创建电影数据库(以自己的学号命名)。 2、在电影数据库中用create table 命令创建如下5个关系模式。 3、用alter table 命令修改movies 关系模式,增加引用完整性约束cproducerc ,要求movies 表中的producerC 必须是在MovieExec 表中已有的导演。若违反了此约束,则拒绝更新操作。 4、用alter table 命令修改StarsIn 关系模式,增加引用完整性约束cmovies ,要求StarsIn 表中的电影名称和年份必须是在movies 表中已有的电影名称和年份。若违反了此约束,则拒绝更新操作。 5、用alter table 命令修改movies 关系模式,增加完整性约束cyear ,要求电影年份不能是1915年以前的。 6、用alter table 命令修改movies 关系模式,增加完整性约束clength ,要求电影长度不能小于60也不能多于250。 7、设计数据对3~6的容进行验证。 8、用create view 命令创建如下视图。 a)视图RichExec 给出了所有资产在10000000以上的导演的、地址、证书号和资产; b)视图StudioPress 给出了既是电影公司经理又是导演的那些人的名字、地址和证书号; c)视图ExecutiveStar 给出了既是演员又是导演的那些人的名字、地址、性别、生日、证书号和资产总值。 9、用create index 命令在StarsIn 的StarName 属性上创建索引aindex 。 10、编写存储过程(函数) ① 求产品数据库Laptop 存容量的平均值和总和。 然后调用该存储过程(函数)。 二、 实验环境 PostGreSQL9.3 三、 实验设计 CREATE TABLE Movies ( title char(20), year int, length int, genre char(10), studioName char (30), producerC int, PRIMARY KEY (title, year ));CREATE TABLE MovieStar ( name char(12), address char(30), gender char(2), birthdate date, PRIMARY KEY (name ));CREATE TABLE StarsIn ( movieTitle char(20), movieYear int, starName char(12), PRIMARY KEY (movieTitle , movieYear , starName ));CREATE TABLE MovieExec ( name char(12), address char(30), cert int, netWorth int, PRIMARY KEY (cert ));CREATE TABLE Studio ( name char(30), address char(30), presC int, PRIMARY KEY (name )); 说明: Movies 关系中,title 为电影名称、year 为发行年份、length 为电影长度(分钟)、genre 为电影流派、studioName 为电影公司名称、producerC 为导演证书号;MovieStar 关系中,name 为影星的姓名、address 为影星住址、gender 为性别、birthdate 为出生日期;StarsIn 关系中,movieTitle 为电影名称、movieYear 为发行年份、starName 为参演影星姓名;MovieExec 关系中,name 导演姓名、address 为住址、cert 为导演证书号、netWorth 为导演净资产值;Studio 关系中,name 为电影公司名称、address 为电影公司地址、presC 为电影公司老总证书号。

相关主题
文本预览
相关文档 最新文档