金陵科技学院实验报告
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