数据库||数据库的安全性

1.实验题目:数据库的安全性

2.实验目的和要求:

  1. 掌握SQL Server 2008的安全控制机制
  2. 掌握SQL Server2008的身份验证模式
  3. 理解数据库用户帐户的基本概念
  4. 理解角色的概念

3.实验步骤:

  1. 按实验内容要求完成各项操作
  2. 根据题目要求给出解决方案
  3. 提交实验报告

4.实验内容:

--表的建立
Create table Student
(Sno char(9) PRIMARY KEY,
 Sname char(20) UNIQUE,
 Sex char(2),
 Age SMALLINT,
 Dept char(20)
 );

 Create table Course
(Cno char(4) PRIMARY KEY,
  Cname char(40) NOT NULL,
  Cpno char(4),
  Ccredit SMALLINT,
  FOREIGN KEY(Cpno) REFERENCES Course(Cno)
  );

  Create table SC
 (Sno char(9),
  Cno char(4),
  Grade SMALLINT,
  PRIMARY KEY(Sno,Cno),
  FOREIGN KEY (Sno)REFERENCES Student(Sno),
  FOREIGN KEY (Cno)REFERENCES Course(Cno)
  );
--表中插入数据
  Insert 
  Into Student
  Values('42101','赵君君','男',18,'CS'),
        ('42102','赵小花','女',17,'MA'),
		('42103','赵小明','男',17,'MA'),
		('42104','赵宇宇','男',18,'CS'),
		('42105','赵兰兰','女',17,'IS'),
		('42106','钱小君','男',18,'CS'),
        ('42107','钱大花','女',17,'MA'),
		('42108','钱君','男',18,'CS'),
        ('42109','钱花','女',17,'MA'),
		('42110','钱明','男',17,'MA'),
		('42111','孙宇','男',18,'CS'),
		('42112','孙兰','女',17,'IS'),
		('42113','江君','男',18,'CS'),
        ('42114','刘花','女',17,'MA');

  Insert 
  Into Course
  Values('1','CS','2',4),
        ('2','MA',null,2),
		('3','IS','1',7);

  Insert 
  Into SC
  Values('42101','1',35),
        ('42102','2',99),
		('42103','2',45),
		('42104','1',95),
		('42105','3',78),
		('42106','1',75),
        ('42107','2',99),
		('42108','1',43),
		('42109','2',95),
		('42110','2',73),
		('42111','1',35),
        ('42112','3',59),
		('42113','1',35),
		('42114','2',96);
		
		Select * from Student;
	Select * from Course;
	Select * from SC;

1.定义登录log1,log2,log3

Create login log1

with password  = '12345678' ;

Create login log2

with password = '12345678' ;

Create login log3

with password = '12345678' ;

数据库||数据库的安全性_第1张图片

2.定义用户user1,user2,user3

Create user log1;

Create user log2;

Create user log3;

数据库||数据库的安全性_第2张图片

3.掌握SQL SERVER 2008架构和用户分离的概念

4.数据库的授权、授权语句

4.1.将查询SC表和修改GRADE属性的权限授予用户user1。

Grant select , update (GRADE)

ON SC

to log1;

数据库||数据库的安全性_第3张图片

4.2.将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。

 Grant insert

ON Student

to log2;

数据库||数据库的安全性_第4张图片

4.3.允许用户user3拥有对cs系学生的查询权限

Grant select(Dept = 'CS')

ON Student

to log3;

数据库||数据库的安全性_第5张图片

4.4.创建角色R1,授予R1 课程表查询和插入的权限,并授予用户user3

Create role R1

Grant select , insert

ON Course

to R1;

Grant R1

to log3;

数据库||数据库的安全性_第6张图片

4.5.删除角色R1课程表的插入权限

Revoke insert

    ON Course

from R1

数据库||数据库的安全性_第7张图片

4.6.收回所有用户对表S的插入权限。

Revoke insert

      ON Student

 from log1, log2, log3

数据库||数据库的安全性_第8张图片

5.实验总结

本次实验要掌握SQL Server 2008的安全控制机制,练习SQL Server2008的身份验证模式,理解数据库用户帐户的基本概念和角色的概念。主要反复使用grant 和revok语句。

6.思考题

1.请分析with grant option、with check option、with admin option有何联系和区别

答:如果指定了with grant option子句,则获得某种权限的用户还可以把这种权限在授予其他的用户。如果没有指定,则获得某种权限的用户只能使用该权限,不能传播该权限。

如果指定了with admin option子句,则获得这种权限的角色或用户还可以把这种权限在授予其他的角色。

with check option表示对视图进行update,insert,delete操作时要保证更新,插入或删除的行满足视图定义中的谓词条件。

2.根据实验内容分析角色在权限分配上有何优点。

答:一个角色包含的权限包括直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限。

你可能感兴趣的:(数据库)