数据库系统概论(第五版) 王珊 第四章 课后习题答案

news/2024/7/8 4:42:53

 

目录

(一)数据库安全性の概念 

1. 什么是数据库的安全性

2.数据库安全性和计算机系统的安全性有什么关系?

4.试述实现数据库安全性控制的常用方法和技术

5.什么是数据库中的自主存取控制方法和强制存取控制方法?

(二)考试重点:(代码)

6.对下列两个关系模式:

7.今有以下两个关系模式:

8.针对习题7中(1)~(7)的每一种情况,撤销个用户所授予的权限。

9.理解并解释MAC 机制中主体、客体、敏感度标记的含义。

11.什么是数据库的审计功能,为什么要提供审计功能?


(一)数据库安全性の概念 

1. 什么是数据库的安全性

数据库的安仝性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏

2.数据库安全性和计算机系统的安全性有什么关系?

安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据

集中存放,而且为许多最终用户直接共亨,从而使安全性问题更为突岀。

系统安全保护措施是否有效是数据库系统的主要指标之一。

数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的,

4.试述实现数据库安全性控制的常用方法和技术

实现数据库安全性控制的常用方法和技术有:

(1) 用户标识和鉴别: 该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进

入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。

(2) 存取控制: 通过用户权限定义和合法杈检査确保只有合法权限的用户访问数据库,所有未被授权的

人员无法存取数据。例如CZ级中的自主存取控制(DAC),B1级中的强制存取控制(MAC)

(3) 视图机制: 为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而

自动地对数据提供一定程度的安全保护

(4) 审计: 建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计

跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人时间和内容等

(5) 数据加密: 对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内

容。

5.什么是数据库中的自主存取控制方法和强制存取控制方法?

自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象

(二)考试重点:(代码)

6.对下列两个关系模式:

  • 学生(学号,姓名,年龄,性别,家庭住址,班级号)
  • 班级(班级号,班级名,班主任,班长)

使用 GRANT 语句(授权语句)完成下列授权功能

create table Student
(
	Snum char(15) unique,
	Sname char(10),
	Sage int,
	Ssex char(5),
	Sloc char(20),
	Scla char(5)
);
 
create table Class
(
	Cnum int,
	Cname char(10),
	Ctea char(10),
	Cmon char(10)
);

(1) 授予用户 U1 对两个表的所以权限,并可给其他用户授权

GRANT ALL PRIVILEGES
ON Class , Student
TO U1
WITH GRANT OPTION;

(2) 授予用户 U2 对学生表具有查看权限,对家庭住址具体更新权限

GRANT SELECT, UPDATE(Sloc)
ON Student
TO S2

(3) 将对班级表查看权限授予全体用户

GRANT SELECT
ON Class
TO PUBLIC;

(4) 将对学生表的查询,更新权限授予角色 R1

GRANT SELECT,UPDATE 
ON Student
TO R1;

(5) 将角色 R1 授予用户 U1,并且 U1 可继续授权给其他角色

GRANT RI
TO U1
WITH ADMIN OPTION

7.今有以下两个关系模式:

  职工(职工号,姓名,年龄,职务,工资,部门号)
  部门(部门号,名称,经理名,地址,电话号)

用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能

create table Staff
(
	Stnum char(15) unique,
	Stname char(10),
	Stage int,
	Stw char(5),
	Sts int,
	Stn char(5)
);
 
create table Dep
(
	Dnum int,
	Dname char(10),
	Dmag char(10),
	Dloc char(10),
	Dcall char(13),
);

(1)用户王明对两个表有SELECT权限。

GRANT SELECT
ON Staff,Dep
TO 王明

(2)用户李勇对两个表有INSERT和DELETE权限。

 GRANT INSERT,DELETE ON Staff,Dep
 TO 李勇

(3)每个职工只对自己的记录有SELECT权限。

--先创建相应的视图,并且把员工ID作为员工的用户名
create view Users
as
select *
from Staff
where Staff.Stnum=USER

--创建好试图后,员工使用自己的用户名登录,直接从视图中查询,就只能看到自己的信息。
grant select
on Users
to public;

--查询
SELECT *
FROM Users;

(4)用户刘星对职工表有SELECT权限,对工资字段具有更新权限。

GRANT SELECT,UPDATE(Sts)
ON Staff
TO 刘星;

(5)用户张新具有修改这两个表的结构的权限。

grant update
on Staff,Dep
to 张新;

(6)用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限。

GRANT ALL PRIVILEGES
ON Staff,Dep
TO 周平
WITH GRANT OPTION;

(7)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限,他不能查看每个人的工资。

--建立视图
CREATE VIEW Dep_sts(DS_name,maxs,mins,avgs)
as
SELECT Dep.Dname,max(Sts),min(Sts),avg(Sts)
FROM Staff,Dep
WHERE Staff.Stnum=Dep.Dnum
GROUP BY Staff.Stnum,Dep.Dname;
 
 --授权杨兰
GRANT SELECT
ON Dep_sts
TO 杨兰;

8.针对习题7中(1)~(7)的每一种情况,撤销个用户所授予的权限。

1.
REVOKE SELECT
ON Staff
FROM 王明;

REVOKE SELECT
ON Dep
FROM 王明;

2.
REVOKE INSERT,DELETE
ON Staff
FROM 李勇;

REVOKE INSERT,DELETE
ON Dep
FROM 李勇;

3.同时删除视图
revoke select
on Users
from public;
drop view Users;

4.
REVOKE SELECT,UPDATE(Sts)
ON Staff
FROM 刘星;

5.
revoke update
on Staff
from 张新;
 
revoke update
on Dep
from 张新;

或者

REVOKE ALTER
ON Staff
FROM 张新;

REVOKE ALTER
ON Dep
FROM 张新;

6.
revoke all 
on Staff
from 周平 cascade;
 
revoke all 
on Dep
from 周平 cascade;

或者

revoke select,update,delete,insert
on Staff
from 周平;

revoke select,update,delete,insert
on Dep
from 周平;

7.
REVOKE SELECT
ON Dep_sts
FROM 杨兰;
DROP VIEW Dep_sts;

9.理解并解释MAC 机制中主体、客体、敏感度标记的含义。

主体是系统中的活动实体,既包括DBMS 所管理的实际用户,也包括代表用户的各进程。
客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体和 客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label )。

敏感度标记被分成若干级别,例如绝密(Top Secret )、机密(Secret )· 可信( Confidential )、公开(PubliC )等。主体的敏感度标记称为许可证级别(ClearanCe 玫vel ) ,客体的敏感度标记称为密级(Classification Level )。

11.什么是数据库的审计功能,为什么要提供审计功能?

审计功能是指DBMS 的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。
因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA 可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

​​​​​​​

 


http://www.niftyadmin.cn/n/218766.html

相关文章

解决macOS IntelliJ IDEA 卡顿问题

写在前面的话1:我在撰写这篇博客时候,所用的IntelliJ IDEA版本是IntelliJ IDEA 2022.3.3 (Ultimate Edition),你需要知道可能对于不同的IntelliJ IDEA版本会有一定的差异 写在前面的话2:如果我这篇博客可以帮助到你,请…

Java模拟rank() over()函数获取分组排名的方法设计及实现

背景 考试批次班级姓名语文202302三年一班张小明130.00202302三年一班王二小128.00202302三年一班谢春花136.00202302三年二班冯世杰129.00202302三年二班马功成130.00202302三年二班魏翩翩136.00 假设我们有如上数据,现在有一个需求需要统计各学生语文单科成绩在班…

Nginx快速上手

Nginx快速上手 OVERVIEWNginx快速上手一、基本概念1.Nginx初步认识2.正向/反向代理(1)正向代理(2)反向代理二、Nginx 安装和配置1.安装2.Nginx指令3.Nginx配置三、Nginx的使用1.Web服务器(1)静态网页存储目…

【外设零基础通用教程】GPIO 上

【外设零基础通用教程】GPIO 上视频/文章结构外设:GPIO代码编写GPIO输入方法GPIO输出方法视频地址: [此内容发布后,会先给硬件群看,如果没问题才会录制视频,视频录制完成后在这里替换] 本教程适合: 硬件零…

面向削峰填谷的电动汽车多目标优化调度策略

说明书 MATLAB代码:面向削峰填谷的电动汽车多目标优化调度策略 关键词:电动汽车 削峰填谷 多目标 充放电优化 参考文档:店主自己整理的说明文档,公式、约束、数据齐全,可联系我查看 仿真平台:MATLAB YA…

成都开发者Meetup|聚焦云原生开源,点亮企业创新活力

作者:阿里云云原生 共话云原生架构升级,构筑开源开放的社区氛围,帮助企业借助云原生开源技术实现增效降本。2023 年 04 月 15 日,8 大微服务&容器开源实践亮点集结成都。本次微服务x容器开源开发者 Meetup 将围绕云原生领域当…

JSF源码分析

架构设计 1.7.4-HOTFIX-T4版本包布局及简要含义 看过了全包的简要,那么其核心的功能模块,就从常用的项目xml配置出发,便于我们的理解。如下: jsf-provider.xml配置 以我们地址服务的jsf-provider.xml文件为例,即&…

OpenCV实例(四)手写数字识别

OpenCV实例(四)手写数字识别1.基本原理2.实现步骤2.1数据准备2.2计算匹配值2.3获取最佳匹配值及对应模板2.4获取最佳匹配模板对应的数字2.5输出识别结果3.代码实例作者:Xiou 1.基本原理 使用模板匹配的方式实现手写数字识别,其基…