南昌大学数据库实验报告

| 浏览次数:

  实

 验

 报

 告

 实验课程:

 数据库原理与应用

  学生姓名:

 郝君

  学 学

 号:

  6104113035

 专业班级: 信息管理与信息系统 131 班

 5 2015 年 年 6 06 月

 20 日

 目 目

 录 一、 实验一 实验环境的建立„„„„„„„„„„„„„„3

 二、 实验二 数据库及表的建立„„„„„„„„„„„„„9 三、 实验三 表的查询„„„„„„„„„„„„„„„„„12 四、 实验四 数据操纵„„„„„„„„„„„„„„„„„19 五、 实验五 数据库完整性、安全性研究„„„„„„„„„22 六、 实验六 简单系统的设计„„„„„„„„„„„„„„

  南昌大学实验报告

  学生姓名:

 学

 号:

  专业班级:

  信息管理

  实验类型:□ 验证 □ 综合 □ 设计 □ 创新

 实验日期:

  实验成绩:

 一、实验项目名称:实验环境的建立 二、实验目的: 1.了解 SQL Server 2000 常用版本与对操作系统的不同要求

 2.熟悉 SQL Server 2000 的基本性能 3.正确安装与配置 SQL Server 2000 三、实验基本原理 SQL 就是结构化查询语言(Structured Query Language)的简称,就是一种特殊目的的编程语言,就是一种数据库查询与程序设计语言,用于存取数据以及查询、更新与管理关系数据库系统。SQL 就是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性与强大的功能。

 自 SQL 成为国际标准语言之后,各个数据库厂家纷纷推出各自的 SQL 软件或与 SQL 的接口软件。这就使大多数数据库均用 SQL 作为共同的数据存取语言与标准接口,使不同数据库系统之间的互操作有了共同的基础。

 SQL Server 就是一个关系数据库管理系统,它最初就是由 Microsoft Sybase 与Ashton-Tate 三家公司共同开发的,于 1988 年推出了第一个 OS/2 版本。在 Windows NT 推出后,Microsoft 将 SQL Server 移植到 Windows NT 系统上,专注于开发推广 SQL Server 的Windows NT 版本。SQL Server 2000 就是 Microsoft 公司推出的 SQL Server 数据库管理系统的一个版本。该版本继承了 SQL Server 7、0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行 Microsoft Windows 98 的膝上型电脑到运行 Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。

 四、主要仪器设备及耗材 相互连成 LAN 的计算机 2 台以上,windows 2000 server 操作系统,SQL Server 2000 安装标准版安装软件。

 五、实验步骤 1. 安装 SQL Server 2000:将安装光盘放入 CD-ROM,将自动弹出“SQL Server 自动菜单”界面,如果没有自动弹出则选择光盘根目录下的 autorun、exe,双击运行:

 选择运行“安装 SQL Server 2000 组件”进入安装组件界面,选择“安装数据库服务器”。进入安装界面后,按照安装提示进行安装;一般需要人工进行干预的有:  选择安装类型与安装路径:安装类型有:典型安装、最小安装、与自定义安装。安装路径就是指 SQL Server 的系统文件与数据文件的安装位置。默认情况下“安装类型”就是典型安装,“安装路径”就是操作系统设定的“Program Files”文件夹。您可以自行改变,初次安装最好不要改变她,按默认情况使用;  配置启动服务的帐号:有两类用户帐号:一类就是与 Windows 操作系统的集成帐号,一类就是混合帐号。选择第一类帐号进行安装; 2. 配置服务器端网络库:SQL Server支持多种网络库,这些网络库必须与操作系统的网络协议共同工作,才能实现客户机与数据库服务器的通信。安装完成后,可以通过操作系统的开始菜单操作:“开始”―>SQL Server”->“数据库服务器网络配置”进行配置; 3. 配置客户端网络库:客户机要与数据库服务器通信,必须安装有与服务器网络库一样的网络库。可以通过操作系统的开始菜单操作:“开始”―>SQL Server”->“客户端网络配置”进行配置; 4. 使用“企业管理器”:(1)了解企业管理器的界面、菜单结构以及各项功能;(2)了解“数据库服务器”的属性配置;(3)了解“数据库”的属性配置;(4)初步了解数据库、表、视图、用户、安全管理,复制等概念; 5. 使用查询分析器:进入查询分析器 ,在分析器中输入语句: use pubs

 select * from authors

 运行观瞧结果 六、实验数据及处理结果

  七、思考讨论题或体会或对改进实验的建议

  1、 查询分析器的作用就是什么?可以有几种启动查询分析器的方法? 分析分析器与数据库的关系;怎样在分析器中选择不同的数据库;怎样在分析器中查瞧数据库的结构?

  答: 查询分析器的作用就是: 1、 创建查询与其它 SQL 脚本,并针对 SQL Server 数据库执行它们。("查询"窗口) 2、,由预定义脚本快速创建常用数据库对象。(模板) 3、快速复制现有数据库对象。(对象浏览器脚本功能) 4、在参数未知的情况下执行存储过程。(对象浏览器过程执行功能) 5、调试存储过程。(T-SQL 调试程序) 6、调试查询性能问题。(显示执行计划、显示服务器跟踪、显示客户统计、索引优化向导) 7、在数据库内定位对象(对象搜索功能),或查瞧与使用对象。(对象浏览器)

 8、快速插入、更新或删除表中的行。("打开表"窗口) 9、为常用查询创建键盘。(自定义查询 HYPERLINK 快捷方式功能) 10、向"工具"菜单添加常用命令。(自定义"工具"菜单功能)

  启动查询分析器的方法:

  1、在“开始”菜单中依次选择“所有程序|Microsoft SQL Server|查询分析器”打开查询分析器。

  2、在“开始”菜单中依次选择“所有程序|Microsoft SQL Server|企业管理器”打开企业管理器后,单击菜单栏中的“工具”选项,选择“SQL 查询分析器”,即可打开查询分析器。

  分析器与数据库的关系:

  在分析器中可以对数据库及数据库中的表进行一系列的操作,如查询与更撰。

  在分析器中选择不同的数据库的方法:

  在工具栏中“当剌数据库”栏目中,点击小黑三角,在弹凸的下拉列表中选择要倇换的数据库名称即可实现数据库的切换。

  在分析器中查瞧 数据库的结构:

  在“对象浏览器”窗口不,单击要查瞧的数据库名称前的“+”,使其变为“-”展开数据库,就可瞧到数据库的结构,若要查瞧其中某一遹的结构,仍就是单击要查瞧项目名称前的“弫”。例如要查瞧表 s 的结构,可依次展开“用户表”、“dbo、s”、“列”,即可查瞧 s 的结构。

 2、遇到的问题及解决的方法

 SQL2000 太过老旧,无法在 win7,win8 上运行。

 解决办法:使用虚拟机装 XP 系统,XP 系统支持 SQL2000、 3、体会或建议

 SQL2000 的安装与其她的软件安装类似。但就是这个软件所支持的平台太过老旧,我们教学应该跟紧时代脚步,学习新的 SQL 版本。

 八、参考资料 1.《数据库系统实验指导》,单建魁等著,清华大学出版社

  南昌大学实验报告

  学生姓名:

 学

 号:

  专业班级:

  信息管理

  实验类型:□ 验证 □ 综合 □ 设计 □ 创新

 实验日期:

  实验成绩:

 一、实验项目名称:数据库及表的建立 二、实验目的: 1.巩固数据库的基础知识

 2.掌握创建数据库的两种方法,掌握表的建立与删除方法,掌握修改表结构的基本方法

 3.掌握对数据库与表的相关操作方法 三、实验基本原理 SQL 即结构化查询语言,就是关系数据库的标准语言,SQL 就是一个综合的、功能极强同时又简洁易学的语言。它集数据查询、数据操纵、数据定义与数据控制功能于一体。

 在 SQL server 2000 中,建立数据库既可以在查询分析器中使用 sql 语句来实现,也可以在企业管理器中使用菜单命令直接创建。同样的表的建立与删除,以及修改表结构也有这两种

 方法。

 创建数据库的 SQL 语句: create database <数据库名> 创建表的 SQL 语句: create table <表名>(<列名><数据类型>[列级完整性约束条件]

 [,<列名><数据类型>[列级完整性约束条件]]

 、、、、、、、、

 [,<表级完整性约束条件>]); 删除基本表的 SQL 语句: drop table <表名>[restrict|cascade]; 修改表的结构的 SQL 语句: alter table <表名>

 [add <新列名><数据类型>[完整性约束]]

  [drop <完整性约束名>]

 [alter column<列名><数据类型>]; 其中,add 子句用于增加新列与新的完整性约束条件,drop 字句用于删除指定的完整性约束条件,alter column 子句用于修改原有的列定义,数据类型。

 四、主要仪器设备及耗材 相互连成 LAN 的计算机 2 台以上,安装有 SQL Server 2000 软件。

 五、实验步骤

  1.创建数据库 (1)使用查询分析器创建数据库

  打开查询分析器,输入如下的 sql 命令:create database Demo。执行命令后即建立一个名为“Demo”的数据库。

 (2)使用企业管理器创建数据库

  打开企业管理器,在左边的小窗口中依次展开目录,找到数据库文件夹,在数据库文件夹处右击,选择“新建数据库”命令,在弹出的数据库属性对话框中输入数据库的名称“Demo”,即可完成创建。

 2.查瞧数据库属性

 在查询分析器中,输入如下的 sql 命令: exec sp_helpdb Demo

 执行命令后查瞧 Demo 的相关属性 3.创建表 (1)打开查询分析器,在工具栏中切换数据库至新建的“Demo”,输入如下命令: create table Student( Sno char(10) PRIMARY KEY, Sname char(8),Ssex char(8),Sage SMALLINT,Sdept char(10) ); 来创建学生表 Student。

 采用同样的方法创建表课程表 Course、选课表 SC。创建的语句如下所示。

 create table Course( Cno char(10),Cname char(10),Cpno char(8),Ccredit SMALLINT );来创建课程表 Course。

 create table SC( Sno char(10),Cno char(8),Grade char(8) );来创建选课表 SC。

 (2)可以使用如 insert

 into

 Student

 values("2015052201","夜神月","男",19,"CS"); 的命令向Student 表中输入数据,也可以在企业管理器中找到 Student 表后,右击选择“打开表|返回所有行”命令来向表中直接输入数据。

 4.修改表结构 1)向 Course 表中增加“Tname”这一列。

 alter table Course add Tname char(5); 对课程表增加一列教师名称。

 5.删除表

  使用 DROP TABLE<表名>[restrict|cascade]; 删除表。

 或者直接在对象浏览器窗口中选中表后右击删除表。

 六、实验数据及处理结果 创建的数据库名称为“Demo”,又在其下创建了三个表,分别为学生表“Student”(表 1)、课程表“Course”(表 2)与选课表“SC”(表 3)。

 图一

 图二

  图三 七、思考讨论题或体会或对改进实验的建议 1、说明数据库与表的关系? 答 答:一个 SQL 数据库就是由多个表构成的,即数据库就是表的汇集,就是表的主要组成部分。

 表在数据库中就是存储数据的方式。

 2、遇到的问题及解决的方法 答 答:在修改学号时提示输入的值与数据类型不一致,或者此值与列的长度不一致。

  解决办法:多打了空格。删去控制字节数。

 3.体会或建议 答 答:企业管理器与查询分析器各有优势。企业管理器中输入数据方便,查询分析器方便进行查询等操作。

 八、参考资料 1.《数据库系统实验指导》,单建魁等著,清华大学出版社

  南昌大学实验报告

  学生姓名:

 学

 号:

  专业班级:

  信息管理

  实验类型:□ 验证 □ 综合 □ 设计 □ 创新

 实验日期:

  实验成绩:

 一、实验项目名称:表的查询

 二、实验目的: 1.了解查询的概念与方法,掌握查询分析器的使用方法

 2.掌握 select 语句的语法与作用

 3.掌握多表连接的方法,能熟练进行多表操作的复杂检索 三、实验基本原理

 数据库查询就是数据库的核心操作。SQL 提供了 SELECT 语句进行数据库的查询,该语句具有灵活的使用方式与丰富的功能。其一般格式为: SELECT [ALL | DISTINCT ]<目标列表达式>[,<目标列表达式>]、、、、、、、 FROM <表名或视图名>[,<表名或视图名>]、、、、、、 [WHERE <条件表达式>] [GROUP BY <列名 1>[ HAVING <条件表达式>] ] [ORDER BY <列名 2>[ASC | DESC ] ]; 整个 SELECT 语句的含义就是,根据 WHERE 子句的条件表达式,从 FROM 子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。

 如果有GROUP BY子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数。如果 GROUP BY 子句带 HAVING 短语,则只有满足指定条件的组才予以输出。

 如果有 ORDER BY 子句,则结果还要按<列名 2>的值的升序或降序排列。

 SELECT 语句既可以完成简单的单表查询,也可以完成复杂的连接查询与嵌套查询。

 视图就是从一个或几个基本表(或视图)导出的表。它与基本表不同,就是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。视图已经定义,就可以与基本表一样被查询、被删除。也可以在一个视图之上再定义新的视图,但对视图的更新(增、删、改)操作则有一定的限制。

 SQL 语言用 CREATE VIEW 命令建立视图,其一般格式为 CREATE VIEW<视图名>[(<列名>[,<列名>]、、、、)]

 AS <子查询>

 [WITH CHECK OPTION]; 其中,子查询可以就是任意复杂的 SELECT 语句,但通常不允许含有 ORDER BY 子句与DISTINCT 短语。

 WITH CHECK OPTION 表示对视图进行 UPDATE,INSERT 与 DELECT 操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。

 删除视图的格式为 DROP VIEW<视图名>[CASCADE]; 视图定义后就可以像对基本表一样对视图进行查询了。

 四、主要仪器设备及耗材 相互连成 LAN 的计算机 2 台以上,安装有 SQL Server 2000 软件。

 五、实验步骤 1.单表查询 (1)了解 select 语句的语法 (2)输入一些检索数据,进行简单的检索,并使用 top,distinct 等关键字

  查询所有学生的详细情况: select * from Student; 查询选修了课程的学生学号: select distinct Sno from SC; 查询考试成绩低于 80 分的学生学号 select distinct Sno from SC where Grade<80; 查询学号为 2015052201 的学生的详细情况

 select * from Student where Sno ="2015052201"; 查询年龄在 18-19 岁之间的学生的姓名、系别与年龄: select Sname,Sdept,Sage from Student where Sage between 18 and 19; 查询计算机科学系 CS 的学生姓名与性别: select Sname,Ssex from Student where Sdept in("CS"); 查询不就是数学系 MA 的学生姓名与性别: select Sname,Ssex from Student where Sdept not in("MA"); 查询选修了 1 号课程的学生学号及成绩,查询结果按分数降序排列: select Sno,Grade from SC where Cno="1" order by Grade DESC; 查询选课学生的情况,查询结果按课程号升序排列,同一门课程按学号降序排列: select * from SC order by Cno,Sno DESC; 查询选修了 1 号课程的学生的最高分: select max(grade) from SC where Cno="1"; 求出各个课程号及相应的选课人数: select Cno,count(distinct Sno)from SC group by Cno; 2.多表查询

 (1)连接查询 查询计算机科学系 CS 年龄在 20 岁以下的学生姓名: select distinct Sname from Student,SC where Sdept="CS"and Sage<20; 查询选修了 4 号课程且成绩在 85 分以上的所有学生: select Student、Sno,Student、Sname from Student,SC

 where Student、Sno=SC、Sno and SC、Cno="4" and grade>85;

  查询学生 131003 的平均分

  select avg(Grade) as average from SC,Course where Sno="2015052206"and SC、Cno=Course、Cno;

 (2)嵌套查询

  查询选修了 6 号课程且成绩在 80 分以上的所有学生

  select Student、Sno,Student、Sname from Student,SC where Student、Sno=SC、Sno and SC、Cno="6" and grade>80;

 查询与远坂凛同样专业的学生: select Sno,Sname from Student where Sdept in(select Sdept from Student where Sname="远坂凛"); 查询已经选课“操作系统”的学生的姓名

 select Sname From Student where

 exists(select * from SC where Sno=Student、Sno and Cno="4");

 找出每个学生超过她选修课程平均成绩的课程号 select Sno, Cno from SC x

 where grade>(select avg(Grade)from SC y where y、Sno=x、Sno); 3.视图的建立及使用视图进行检索 建立 CS 系学生的视图,并要求进行修改与插入操作时仍需保证该视图只有该系的学生: create view CS_Student as select Sno,Sname,Sage,Ssex from Student where Sdept="CS"

 建立一个由学生学号与她的平均成绩定义的视图: create view S_G(Sno,Gavg) as select Sno,avg(Grade)from Student group by Sno 删除视图 CS_Student:

 drop view CS_Student; 在 S_G 视图中查询平均成绩在 80 分以上的学生学号与平均成绩: select Sno,Gavg from S_G where Gavg>=80; 将 CS_Student 视图中学号为 10 的学生姓名改为“桐人”: update CS_Student set Sname="桐人"where Sno="10"; 向 CS_Student 视图中插入一个新的学生记录,学号为 2015052211,姓名为新一,男,20 岁。

 insert into CS_Student values("2015052211","新一","20","男"); 删除信息管理系学生视图中学号为 2015052211 的记录: delete from CS_Student where Sno="2015052211"; 六、实验数据及处理结果 建立的数据库名与表名及数据如实验二,各查询的结果依次如下图: 1. 单表查询

  1)所有学生的详细情况

  2)查询选修了课程的学生学号

  3)查询考试成绩低于 80 分的学生学号

 4)查询学号为 2015052201 的学生的详细情况

  5)查询年龄在 18-19 岁之间的学生的姓名、系别与年龄

 6)查询计算机科学系 CS 的学生姓名与性别

 7)查询不就是数学系 MA 的学生姓名与性别

  8)查询选修了 1 号课程的学生学号及成绩,查询结果按分数降序排列

 9)查询选课学生的情况,查询结果按课程号升序排列,同一门课程按学号降序排列

 10)查询选修了 1 号课程的学生的最高分

 11)各个课程号及相应的选课人数 2. 多表查询

 1、查询 CS 年龄在 20 岁以下的学生姓名

  2、查询选修 4 号课程且成绩在 85 分以上的学生

 3、查询学生 131003 的平均分

  4、查询选修了 6 号课程且成绩在 80 分以上的所有学生

  5、查询与远坂凛同样专业的学生

 6、查询已经选课“操作系统”的学生的姓名

 7、找出每个学生超过她选修课程平均成绩的课程号 3. 视图建立与检索操作

 1、建立 CS 系学生的视图,并要求进行修改与插入操作时仍需保证该视图只有该系的学生

 2、建立一个由学生学号与她的平均成绩定义的视图

 3、查询平均 80 分以上的学生学号与平均成绩

 4、将 CS_Student 视图中学号为 2015052210 的学生姓名改为“桐人”

 5、向 CS_Student 视图中插入一个新的学生记录,学号为 2015052211,姓名为新一,男,20 岁。

 七、思考讨论题或体会或对改进实验的建议 1、说明多表连接属于自然连接还就是等值连接?

  答:属于等值连接。

 2、遇到的问题及解决的方法

 答:在企业管理器中编辑后,在查询分析器中找不到数据。后面发现 3、体会或建议

 八、参考资料 1.《数据库系统实验指导》,单建魁等著,清华大学出版社

  南昌大学实验报告

  学生姓名:

 学

 号:

  专业班级:

  信息管理

  实验类型:□ 验证 □ 综合 □ 设计 □ 创新

 实验日期:

  实验成绩:

 一、实验项目名称:数据操纵

 二、实验目的: 1.掌握查瞧、重命名及删除用户定义的数据类型的方法

 2.掌握向表中添加、删除与修改数据的方法

 三、实验基本原理

 SQL 中插入元组的 INSERT 语句格式为 INSERT INTO <表名>[(<属性列 1>[,<属性列 2>]…、)] VALUES(<常量 1>[,<常量 2>]…); 其功能就是将新元组插入到指定表中,其中新元组的属性列 1 的值为常量 1,属性列 2 的值为常量 2…、。INTO 子句中没有出现属性列,新元组将在这些列上取空值。如果 INTO 子句中没有指明任何属性列名,则新插入的元组必须在每个属性列上均有值。

 修改数据的一般格式为 UPDATE <表名> SET <列名>=<表达式>[,<列名>=<表达式>]…

 [WHERE<条件>];其功能就是修改指定表中满足 WHERE 子句条件的元组。其中 SET 子句给出<表达式>的值用于取代相应的属性列值。如果省略 WHERE 子句,则表示要修改表中的所有元组。

 删除数据的格式一般为 DELETE

 FROM

 <表名>

 [WHERE<条件>]; DELETE 语句的功能就是从指定表中删除满足条件的的所有元组,如果省略了 WHERE 子句,表示要删除表中的所有元组,但表的定义仍在字典中。

 四、主要仪器设备及耗材 相互连成 LAN 的计算机 2 台以上,安装有 SQL Server 2000 软件。

 五、实验步骤 1.使用 insert 向表中添加一行或多行数据

  向课程表中添加一门新课:insert into Course values("8","学术英语","1","4"); 新建一个表 G_Course,并向新表中插入每个课程的平均成绩: create table G_Course(Cno char(4),Avg_age int);

 insert into G_Course select Cno,avg(Grade)from SC group by Cno; 2.使用 update 实现一行或成组数据的修改

  将 s 表中学号为“2015052209”的学生的年龄改为 19 岁:

  update Student set Sage=19 where Sno="2015052209";

  将 SC 表中成绩少于 80 的学生成绩改为 80:update SC set Grade=80 where grade<80; 3.使用 delete 删除表中的数据

  将新插入的学号为“2015052211”的学生记录删除:

  delete from Student where Sno=’2015052211’; 4、 创建、重命名与删除用户定义的数据类型

  将 datetime 创建为新的数据类型 type:exec sp_addtype [type],datetime,’null’; 六、实验数据及处理结果 建立的数据库名与表名及数据如实验二,各查询的结果依次如下各截图:

 1.使用 insert 向表中添加一行或多行数据

 1、向课程表中添加一门新课 2、新建一个表 G_Course,并向新表中插入每个课程的平均成绩

 3.将 s 表中学号为“2015052209”的学生的年龄改为 19 岁 4、将 SC 表中成绩少于 80 的学生成绩改为 80

 5.将新插入的学号为“2015052211”的学生记录删除

  6、将 datetime 创建为新的数据类型 七、思考讨论题或体会或对改进实验的建议 1、如何创建用户定义的数据类型?完成后该如何查瞧?

 答:使用“sp_addtype”语句。

 2、体会或建议

  答: 需要加强对 SQL 语句的练习。

 八、参考资料 1.《数据库系统实验指导》,单建魁等著,清华大学出版社

  南昌大学实验报告

  学生姓名:

 学

 号:

  专业班级:

  信息管理

  实验类型:□ 验证 □ 综合 □ 设计 □ 创新

 实验日期:

  实验成绩:

 一、实验项目名称:数据库的完整性、安全型研究 二、实验目的: 1.理解完整性的概念,重点理解用户定义完整性的使用

 2.掌握 SQL Server 2000 中有关用户、角色及操作权限的管理方法 3.掌握数据库备份与还原的基本方法

  三、实验基本原理 SQL 中用 GRANT 语句与 REVORK 语句向用户来授予权限与收回权限。

 GRANT 语句的一般格式为: GRANT<权限>[,<权限>]…、 ON <对象类型><对象名>[,<对象类型><对象名>]…、 TO <用户> [,<用户>]…

  [WITH GRANT OPTION]; 其语义为:将对指定操作对象的指定操作权限授予指定的用户。发出该 GRANT 语句的可以就是 DBA,也可以就是该数据库对象创建者(即属主 Owner),也可以就是已经拥有该权限的用户,接受该权限的用户可以就是一个或多个具体用户,也可以就是 PUBLIC,即全体用户。

 如果指定了 WITH GRANT OPTION 字句,即获得某种权限的用户还可以把这种权限再

 授予其她的用户。但不允许循环授权,即被授权者不能把权限再授回给授权者或其祖先。

 授予的权限可以由DBA或其她授权者用REVORK语句收回,REVORK语句的一般格式为: REVORK<权限>[,<权限>]… ON<对象类型><对象名>[,<对象类型><对象名>]… FROM<用户>[,<用户>]…[CASCADE|RESTRICT]; 数据库角色就是被命名的一组与数据库操作相关的权限,角色就是权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。

 在 SQL 中首先用 CREATE ROLE 语句来创建角色,然后用 GRANT 语句来给角色授权。

 创建角色的 SQL 语句格式就是 CREATE

 ROLE<> 刚刚创建的角色就是空的,没有任何内容。可以用 GRANT 为角色授权。

 GRANT <权限>[,<权限>]… ON<对象类型><对象名> TO<角色>[,<角色>]… 将一个角色授予其她的角色或用户 GRANT <角色 1>[,<角色 2>]… TO<角色 3>[,<用户 1>]、、 [WITH

 ADMIN

 OPTION] 角色权限的收回 REVORK <权限>[,<权限>]… ON<对象类型><对象名> FROM <角色>[,<角色>]…、、 四、主要仪器设备及耗材 相互连成 LAN 的计算机 2 台以上,安装有 SQL Server 2000 软件。

 五、实验步骤 1.数据库的备份 方法一:在查询分析器中输入以下命令 backup database Demo to disk="Demo、bak" 备份数据库

 backup,如图 1 方法二:在企业管理器中找到要备份的数据库,右击“所有任务→备份数据库”,弹出备份数据库对话框,选择备份路径,单击确定,即可备份成功。如图 2

 2.数据库的还原

  方法一:在查询分析器中输入: “restore database Demo from disk="Demo、bak"”还原数据库 Demo,如图 3 方法二:在企业管理器中找到要还原的数据库,右击选择“所有命令|还原数据库”,弹出还原数据库对话框,选择备份文件的路径,单击确定,即可还原成功,如图 4 所示。

 3.SQL Server 2000 的安全模式 4、 管理数据库用户 5.管理数据库角色 新 建 一 个 角 色 user2,create role visitor2; 并 将 查 询 与 更 新 权 限 授 予 它 :grant

 select,delete,insert,update on Student to visitor2;

 图一

 图 2

  图 3

  图 4

  图 5

  图 6

 图 7 6.权限管理 (1)新建一个用户登录,采用 sql 身份验证的方式,用户名为 HJ 。将查询权限授予用户 me:grant select on s to HJ

 (2)收回授予用户 HJ 的查询权限:revoke select on s from HJ 7.对表的某个字段的约束

 在定义表时定义属性上的约束条件,如 unique 、not null 等 六、实验数据及处理结果 七、思考讨论题或体会或对改进实验的建议 1、如何避免用户数据的不一致? (1)提供定义完整性约束条件的机制 (2)提供完整性检查的方法 (3)违约处理,如拒绝执行该操作或级连执行其她操作。

 2、遇到的问题及解决的方法

  创建用户时使用语句“create role manager”总就是报错,查资料得知 SQL Sever 2000 不支持 create role ,后采用 sp_addrole。

 3、体会或建议 通过几次的实验发现,所有可以在企业管理器中执行的操作,都可以在查询分析器中使用SQL 代码来做。例如创建新的用户登录,就可以使用“sp_addlogin "zhangsan","888888","abc" ”的 sql 语句,表示创建一个用户名为张三、登录密码为 888888,默认数据库为 abc 的新登录用户。又如创建一个新的角色,可以使用“sp_addrole "manager" ”sql 语句来创建,表示创建了一个名为 manager 的角色。而删除新建的用户登录与角色则用“sp_droplogin"zhangsan"”与“sp_droprole"manager"”语句。

 八、参考资料 1.《数据库系统实验指导》,单建魁等著,清华大学出版社

推荐访问: 南昌大学 实验 数据库

【南昌大学数据库实验报告】相关推荐

工作总结最新推荐

NEW