数据库实验--表和表数据的操作等 下载本文

金陵科技学院实验报告

select @总学分=总学分 from xsqk where 学号=@学号 if (@总学分is null) print '此学生没有学分'

else if (@总学分<9) print '此学生所选学分为'+convert( char(2),@总学分)+' ,学分不足'

else print '此学生所选学分为'+convert( char(2),@总学分)+' ,学分已充足'

go exec sp_helptext proc_8_t3 exec proc_8_t3 '02020101'

五、创建触发器

1、if exists (select name from sysobjects where name ='trigger_9_t1')

drop trigger trigger_9_t1; create trigger trigger_9_t1 on xsqk for update as print '学生情况表被更新了'

update xsqk set 姓名='李子' where 学号='2020109' exec sp_helptext 'trigger_9_t1'

exec sp_depends 'trigger_9_t1' exec sp_depends 'xsqk'

2、if exists (select name from sysobjects where name ='trigger_9_t2')

drop trigger trigger_9_t2; create trigger trigger_9_t2

on xscj for delete as update xsqk set 总学分=总学分-(select 学分from deleted)

from xsqk,deleted where xsqk.学号=deleted.学号

exec sp_helptext trigger_9_t2 exec sp_depends trigger_9_t2 delete from xscj

where 学号='02020101'and 课程号='101'

3、if exists (select name from sysobjects where name ='trigger_9_t2')

drop trigger trigger_9_t3; create trigger trigger_9_t3 on xsqk for update as

if update(学号) begin update xscj

set 学号=inserted.学号 from deleted,inserted where xscj.学号=deleted.学号 end

update xsqk

set 学号='02020110' where 学号='02020101'

六、修改触发器

alter trigger trigger_9_t1 on xsqk

24

金陵科技学院实验报告

for update

as declare @学号varchar(255) select @学号=deleted.学号 from deleted

print '学生情况表'+convert(char(8),@学号)+' 号学生记录被更新了' update xsqk set 姓名='李子'

where 学号='2020109'

if exists (select name from sysobjects where name ='trigger_9_t1') drop trigger trigger_9_t1;

六、实验体会和收获

实验项目名称:数据库备份、恢复、安全管理 实验学时: 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间:

实验7 数据库备份、恢复、安全管理

一、实验目的和要求

1、了解SQL Server2005的数据备份机制,理解数据库备份的意义、数据库逻辑备份与物理备份的区别;

2、掌握磁盘备份设备的创建和管理,掌握各种备份数据库的方法,了解怎样制订备份计划; 3、了解SQL Server 2005的数据恢复机制,掌握数据库恢复的方法; 4、了解SQL SERVER 2005的身份验证模式,并学会如何改变身份验证模式; 5、理解数据库用户账号的基本概念,掌握管理数据库用户账号技术; 6、掌握删除登录账号和用户账号技术; 7、理解角色的概念,掌握管理角色技术。

二、实验设备、环境

设备:奔腾Ⅳ或奔腾Ⅳ以上计算机;

环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、SQL Server2005中文版。

三、实验步骤

1、根据题目要求熟悉SQL Server2005的各种管理工具; 2、分析题意,重点分析题目要求并给出解决方法;

3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中; 4、提交完成的实验结果。

25

金陵科技学院实验报告

四、实验内容

1、定义备份设备

根据实际情况,创建一个备份设备,其逻辑设备名为:Student_back,物理设备名为:F:\\×××\\×××\\DBbackup。(注:‘\\×××\\×××\\’为:\\班级\\学号\\) 2、备份数据库

(1)为Stuscore数据库创建完全数据库备份; (2)在Stuscore数据库中插入两张表new1、new2使Stuscore数据库完全备份后发生了一些变化然后分别在SQL Server Management Studio和查询分析器窗口中先后进行差异备份; (3)使用同样的方法使数据库有些变化,即在Stuscore数据库中插入两张表:new3、new4,然后分别在SQL Server Management Studio和查询分析器窗口中为该数据库先后进行两次日志备份。 3、恢复数据库

在前面已经为Stuscore数据库建立了1次完全备份,2次差异备份和2次日志备份,现在要求删除Stuscore数据库,然后再将其恢复。 4、安全认证模式

(1)使用SQL Server2005创建一个SQL Server登录帐号aa,赋予其系统管理员角色。 (2)先在服务器上创建一个Windows用户bb,,然后使用创建登录向导,将该用户赋予数据库Pubs数据库db_owener访问权限。

(3)分别在Management Studio的安全性项的登录帐号子项和Pubs数据库的用户子项中查看刚才所创建的登录帐号aa和bb。 5、管理数据库用户账号

(1)使用SQL Server Management Studio为登录帐号loginT创建一个数据库Norhwind用户帐号userT,并赋予db_owner数据库角色。

(2)利用系统存储过程,创建数据库Norhwind的用户帐号userC,其所对应的登录帐号为loginC。

6、删除登陆账号和用户账号。

(1)直接在Management Studio中删除Northwind数据库的userT用户帐号,然后删除userT所对应的登录帐号loginT。

(2)利用系统存储过程sp_revokelogin删除Northwind数据库的userC用户帐号使用脚本:

Use Northwind Go Sp_revokedbaccess ‘userC’ GO

(3)创建一个Windows用户组gg,接着创建Windows用户cc,并使cc隶属于组gg和cc授权登录和访问SQL Server系统。依次利用此帐号作测试登录。测试成功后运行脚本:

sp_revokelogin ‘cc’

然后以cc登录SQL Server系统,能否成功。运行脚本:sp_grantlogin ‘cc’,’cc’ Go Sp_denylogin ‘cc’,’cc’ Go再以cc登录SQL Server系统,测试能否成功。 7、角色

(1)利用系统存储过程为数据库Northwind创建一个数据库角色myrole,并创建一个数据库用户myuser,使其属于角色myrole。

26

金陵科技学院实验报告

(2)分别利用系统存储过程sp_helplogins,sp_helpuser,sp_helprole查看相关信息。 (3)将数据库用户myuser添加为数据库Northwind的db_owner角色。

五、问题解答及实验结果

1、定义备份设备

exec sp_addumpdevice 'disk','Student_back','F:\\M10计算机科学与技术\\1021413036\\DBbackup.bak'

二、备份数据库

(1)backup database Stuscore

to Student_back with init (2)create table new1

(SNO Char(8) not null,) create table new2 (SNO Char(8) not null,) backup database Stuscore

to Student_back with differential

(3)backup LOG Stuscore to Student_back 三、恢复数据库

Restore database Stuscore

from Student_back with norecovery

四、安全认证模式 (1)USE [master]

GO CREATE LOGIN [aa] WITH PASSWORD=N'12' MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON

GO EXEC master..sp_addsrvrolemember @loginame = N'aa', @rolename = N'sysadmin' GO

五、管理数据库用户账号

(1)sp_addlogin 'loginT','T'

Go use northwind

Go sp_grantdbaccess 'loginT','userT' go

(2)sp_addlogin 'loginC','C'

Go use northwind

Go sp_adduser 'loginC','userC' go

六、删除登陆账号和用户账号 (1)Use Northwind

Go Sp_revokedbaccess 'userT' GO sp_revokelogin 'loginT'

(2)Use Northwind

Go Sp_revokedbaccess 'userC' GO sp_revokelogin 'loginC'

七、角色

(1)sp_addlogin 'myrole'

Go use northwind

Go sp_addrolemember 'myrole','myuser' go

27

金陵科技学院实验报告

(2)sp_helplogins

Go sp_helpuser Go sp_helprole go

(3)use northwind

Go sp_addrolemember 'db_owner','myuser' Go grant select on products to roleN

Go grant insert,update,delete on products to myuser Go grant create table to myuser go

六、实验体会和收获

28