第一部分
数据库安全性控制的常用方法和技术:
- 用户标识和鉴别
- 存取控制
- 视图机制
- 审计
- 数据加密
在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据,在授权的定义中,数据对象的范围越小,授权子系统就越灵活。
SQL语言的 GRANT和REVOKE语句 主要是用来维护数据库的安全性。
SQL中,数据控制DCL的常见命令有GRANT(自主存取控制)、REVOKE(自主存取控制)、DENY。
GRANT 语句:
GRANT <权限列表(逗号分隔)> ON <数据库对象> TO <用户或角色> [WITH GRANT OPTION];
REVOKE 语句:
REVOKE <权限列表(逗号分隔)> ON <数据库对象> FROM <用户或角色>;
DENY 语句:
DENY <权限列表(逗号分隔)> ON <数据库对象> TO <用户或角色>;
GRANT SELECT, INSERT, UPDATE, DELETE ON Register TO RoleS;
REVOKE SELECT, INSERT, UPDATE, DELETE ON Register FROM RoleS;
DENY SELECT, INSERT, UPDATE, DELETE ON Teacher TO RoleT;
第二部分
1.数据库的安全性是指保护数据库以防止不合法的使用所造成的 数据泄露、更改 或破坏。
2.用户标识和鉴别的方法有很多种,常用的方法有通过输入 用户名和 口令来鉴别用户。
3.计算机系统有三类安全性问题,即 技术安全类、 管理安全类 和 政策法律类。
4.用户权限定义和 合法权检查机制 一起组成了DBMS的安全子系统。
5.当前大型的DBMS一般都支持 自主存取控制(DAC) 有些DBMS同时还支持 强制存取控制(MAC) 。
6.用户权限是由两个要素组成的: 数据对象 和 操作类型。
7.在数据库系统中,定义存取权限称为授权。SQL语言用GRANT语句向用户授予对数据的操作权限,用REVOKE语句收回授予的权限。
8.对数据库模式的授权由DBA在创建用户时实现。
9.一个DBA用户可以拥有CREATE USER、CREATE SCHEMA和CREATE TABLE权限,一个RESOURCE用户可以拥有CREATE TABLE权限。
10.数据库角色是被命名的一组与数据库操作 相关的权限,角色是权限的集合。
11.通过视图机制可以把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
12.审计一般可以分为用户级审计和系统级审计。
13.数据库的完整性是指数据的正确性和相容性。
14.SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和 用户自定义完整性。
15.数据库完整性的定义一般由SQL的DDL 数据字典语句来实现
16.关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。
17.为了避免对基本表进行全表扫描,RDBMS核心一般都对主码自动建立一个索引。
18.关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码列,用REFERENCES短语指明这些外码参照哪些表的主码。
第三部分
1.什么是数据库的安全性?
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
2. 数据库安全性和计算机系统的安全性有什么关系?
安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。 系统安全保护措施是否有效是数据库系统的主要指标之一。 数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
3.什么是数据库中的自主存取控制方法和强制存取控制方法?
自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
4.为什么强制存取控制提供了更高级别的数据库安全性?
强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。
5.什么是数据库的审计功能,为什么要提供审计功能?
审计功能是指DBMS的审计模块在用户对数据库执行操作的同时把所有操作自动记录到系统的审计日志中。 因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可能存在。利用数据库的审计功能,DBA可以根据审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
6. 什么是数据库的完整性?
数据库的完整性是指数据的正确性和相容性
7.举例三类数据库完整性
1.实体完整性:
若A是基本关系R的主属性,A不能取空值。
比如表A(a,b,c)中,若a是主码,则a不能为空值。
2.参照完整性:
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码相对应,则对于R中每个组在F上的值取之允许两种可能,或者为空值,或者等于S中某个元组的主码值。
比如:表A(a,b,c),表B(c,a,d)如果两关系间存在属性引用,那么表B中的a的值只有两个可能,要么等于表A中的某个记录的值,要么就为空。
3.用户定义的完整性:
由用户自定义的约束啦,像sql语句check (price between 3000 and 7000)