數據庫 實驗七 事務管理與數據庫備份、恢復和安全實驗

–三、實驗步驟:
–1、事務操作
–在選修數據庫中,以Student(sno,sname,ssex,sage,sdept),Course(cno,cname,cpno,credit),SC(sno,cno,grade)表創建下列事務。
–(1)將學生“吳敏”的“計算機基礎”的課程成績改爲77分。


DECLARE @sno char(9),@cno char(5) 
select @sno=sno from student where sname='吳敏'
select @cno=cno from course where cname='計算機基礎'
BEGIN TRANSACTION 
	UPDATE SC
	  SET grade=77
	  WHERE sno =@sno and cno=@cno
COMMIT TRAN ;
select sc.*,s.sname from sc left join student s on s.sno=sc.sno;

–(2)將課程“數據結構”和“計算機基礎”的課程號互換。

DECLARE @cno1 char(5),@cno2 char(5) 
select @cno1=cno from course where cname='數據結構'
select @cno2=cno from course where cname='計算機基礎'
BEGIN TRANSACTION
	UPDATE Course
	  SET cname='計算機基礎'
	  WHERE cno=@cno1
	  

UPDATE Course
	  SET cname='數據結構'
	  WHERE cno=@cno2

COMMIT TRAN;
select *from course;

–(3)將學生“吳敏”選修的“計算機基礎”課程轉給“李勇”,“數據結構”轉給“王敏”。

DECLARE @cno11 char(5),@cno22 char(5) ,@grade1 int,@grade2 int,@sno1 char(9),@sno2 char(9),@sno3 char(9)
select @sno1=sno from student where sname='吳敏'
select @sno2=sno from student where sname='李勇'
select @sno3=sno from student where sname='王敏'
select @cno11=cno from course where cname='數據結構'
select @cno22=cno from course where cname='計算機基礎'
select @grade1=grade from sc where cno=@cno11
select @grade2=grade from sc where cno=@cno22
BEGIN TRANSACTION
	delete sc where sno=@sno1 and cno in(@cno11,@cno22)
	insert into sc values(@sno2,@cno22,@grade2)
	insert into sc values(@sno1,@cno11,@grade1)
COMMIT TRAN;
select sc.*,s.sname,c.cname from sc ,course c, student s where s.sno=sc.sno and c.cno=sc.cno;

–2、安全管理
–(1)創建一個Windows認證的登錄賬戶newuser,並定義數據庫用戶new_user,允許該用戶對選修數據庫進行查詢。

exec sp_addlogin newuser,'123456';
exec sp_grantdbaccess newuser,new_user ;
grant   select  on  student   to    new_user;
grant select any table to new_user; -- 所有表的select 權限賦予user

–(2)創建一個Windows認證的登錄賬戶student,並定義數據庫用戶student_user,設置允許該用戶對選修數據庫進行查詢,對SC的grade列進行插入、修改和刪除。

exec sp_addlogin student,'123456';
exec sp_grantdbaccess student,student_user ;
grant select on sc to student_user;
grant insert,update,delete on sc(grade) to student_user;

–3、數據庫的備份與恢復
–(1)對學生選修數據庫進行完整備份、差異備份、事務日誌備份和文件組備份。
– 創建備份設備
BACKUP DATABASE SC to disk=‘D:\sc\sc.bak’ with init,
name=‘D:sc\back_sc’;



BACKUP DATABASE SC TO disk=‘D:\sc\sc_backup.bak’;

BACKUP DATABASE SC TO disk=‘D:\sc\firstbackup’ with differential,noinit ;

BACKUP LOG SC TO disk=‘D:\sc\firstbackup’ with noinit ;

BACKUP DATABASE SC FILEGROUP=‘Secondary’ TO disk=‘firstbackup’ with noinit ;

數據備份先貼着吧,我也不知道咋做

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章