第5章数据库安全保护 U八◆回
返回 1 第5章 数据库安全保护
本章概要 >随着计算机的普及,数据库的使用也越来越广泛 令例如,一个企业的全部信息,国家机构的事务管理信息,国 防情报等机密信息,都集中地存放在数据库中。 >在前面我们已经讲到,数据库系统中的数据是由DBMS 统一进行管理和控制的。 为了适应和满足数据共享的环境和要求,DBMS要保证 整个系统的正常运转,防止数据意外丢失和不一致数 据的产生,以及当数据库遭受破坏后能迅速地恢复正 常,这就是数据库的安全保护。 >DBMS对数据库的安全保护功能是通过四方面实现的, 即安全性控制、完整性控制、并发性控制和数据库恢 复 本章就是从这四方面来介绍数据库的安全保护功能: 令要求掌握安全性、完整性、并发性和数据库恢复的含义, ☆掌握这四方面分别实现安全保护功能的方法。 +回p
返回 2 本章概要 ➢ 随着计算机的普及,数据库的使用也越来越广泛。 ❖ 例如,一个企业的全部信息,国家机构的事务管理信息,国 防情报等机密信息,都集中地存放在数据库中。 ➢ 在前面我们已经讲到,数据库系统中的数据是由DBMS 统一进行管理和控制的。 ➢ 为了适应和满足数据共享的环境和要求,DBMS要保证 整个系统的正常运转,防止数据意外丢失和不一致数 据的产生,以及当数据库遭受破坏后能迅速地恢复正 常,这就是数据库的安全保护。 ➢ DBMS对数据库的安全保护功能是通过四方面实现的, 即安全性控制、完整性控制、并发性控制和数据库恢 复。 ➢ 本章就是从这四方面来介绍数据库的安全保护功能: ❖ 要求掌握安全性、完整性、并发性和数据库恢复的含义, ❖ 掌握这四方面分别实现安全保护功能的方法
51数据库的安全性2 5.1.1数据库安全性的含义 数据库的安全性是指保护数据库,以防止非法使用所 造成数据的泄露、更改或破坏。 安全性问题有许多方面,其中包括 1)法律、社会和伦理方面,例如请求查询信息的人是 不有合法的权力。 (2)物理控制方面,例如计算机机房或终端是否应该加 锁或用其他方法加以保护。 (3)政策方面,确定存取原则,允许哪些用户存取哪些 数据。 (4)运行方面,使用口令时,如何使口令保持秘密。 (5)硬件控制方面,CPU是否提供任何安全性方面的功能 诸如存储保护键或特权工作方式。 U八◆回
返回 3 5.1.1 数据库安全性的含义 ➢ 数据库的安全性是指保护数据库,以防止非法使用所 造成数据的泄露、更改或破坏。 ➢ 安全性问题有许多方面,其中包括: (1)法律、社会和伦理方面,例如请求查询信息的人是 不有合法的权力。 (2)物理控制方面,例如计算机机房或终端是否应该加 锁或用其他方法加以保护。 (3)政策方面,确定存取原则,允许哪些用户存取哪些 数据。 (4)运行方面,使用口令时,如何使口令保持秘密。 (5)硬件控制方面,CPU是否提供任何安全性方面的功能, 诸如存储保护键或特权工作方式。 5.1 数据库的安全性
(6)操作系统安全性方面,在主存储器和数据文件用过以后, 操作系统是否把它们的内容清除掉。(7)数据库系统本身安 全性方面。这里讨论的是数据库本身的安全性问题,即主要考 虑安全保护的策略,尤其是控制访问的策略。 5.1.2安全性控制的一般方法 安全性控制是指要尽可能地杜绝所有可能的数据库非法 访问。 >用户非法使用数据库可以有很多种情况。例如,编写合 法的程序绕过DBNS授权机制,通过操作系统直接存取、 修改或备份有关数据。 >用户访问非法数据,无论它们是有意的还是无意的,都 应该加以严格控制,因此,系统还要考虑数据信息的流 动问题并加以控制,否则有隐蔽的危险性。 U八◆《回
返回 4 (6)操作系统安全性方面,在主存储器和数据文件用过以后, 操作系统是否把它们的内容清除掉。(7)数据库系统本身安 全性方面。这里讨论的是数据库本身的安全性问题,即主要考 虑安全保护的策略,尤其是控制访问的策略。 5.1.2 安全性控制的一般方法 ➢ 安全性控制是指要尽可能地杜绝所有可能的数据库非法 访问。 ➢ 用户非法使用数据库可以有很多种情况。例如,编写合 法的程序绕过DBMS授权机制,通过操作系统直接存取、 修改或备份有关数据。 ➢ 用户访问非法数据,无论它们是有意的还是无意的,都 应该加以严格控制,因此,系统还要考虑数据信息的流 动问题并加以控制,否则有隐蔽的危险性
>因为数据的流动可能使无权访问的用户获得访 问权利。 ◆例如,甲用户可以访问文件F1,但无权访问文件F2, 如果乙用户把文件F2移至文件F1中之后,则由于乙 用户的操作,使甲用户获得了对文件F2的访问权。 此外,用户可以多次利用允许的访问结果,经过逻 辑推理得到他无权访问的数据。 >为防止这一点,访问的许可权还要结合过去访 问的情况而定。 >可见安全性的实施是要花费一定代价的,安全 保护策略就是要以最小的代价来防止对数据的 非法访问,层层设置安全措施。 U八◆回
返回 5 ➢ 因为数据的流动可能使无权访问的用户获得访 问权利。 ❖例如,甲用户可以访问文件F1,但无权访问文件F2, 如果乙用户把文件F2移至文件F1中之后,则由于乙 用户的操作,使甲用户获得了对文件F2的访问权。 此外,用户可以多次利用允许的访问结果,经过逻 辑推理得到他无权访问的数据。 ➢ 为防止这一点,访问的许可权还要结合过去访 问的情况而定。 ➢ 可见安全性的实施是要花费一定代价的,安全 保护策略就是要以最小的代价来防止对数据的 非法访问,层层设置安全措施
>实际上,安全性间题并不是数据库系统所独有 的,所有计算机系统中都存在这个问题。 在计算机系统中,安全措施是一级一级层层设 置的,安全控制模型如图5.1所示。 用户 DBMSM DB MS 用户标识 用户存取 操作系统 密码存储 和鉴定 权限控制 安全保护 图5.1安全控制模型 U八◆回
返回 6 ➢ 实际上,安全性问题并不是数据库系统所独有 的,所有计算机系统中都存在这个问题。 ➢ 在计算机系统中,安全措施是一级一级层层设 置的,安全控制模型如图5.1所示。 图5.1 安全控制模型 用户标识 和鉴定 用户 用户存取 权限控制 DBMSM MS 操作系统 安全保护 OS 密码存储 DB
>根据图5.1的安全模型,当用户进入计算机系 统时,系统首先根据输入的用户标识进行身份 的鉴定,只有合法的用户才准许进入系统。 >对已进入系统的用户,DBMS还要进行存取控制, 只允许用户进行合法的操作。 >DBMS是建立在操作系统之上的,安全的操作系 统是数据库安全的前提。 >操作系统应能保证数据库中的数据必须由DBMS 访问,而不允许用户越过DBMS,直接通过操作 系统访问。 数据最后可以通过密码的形式存储到数据库中 U八◆回
返回 7 ➢ 根据图5.1的安全模型,当用户进入计算机系 统时,系统首先根据输入的用户标识进行身份 的鉴定,只有合法的用户才准许进入系统。 ➢ 对已进入系统的用户,DBMS还要进行存取控制, 只允许用户进行合法的操作。 ➢ DBMS是建立在操作系统之上的,安全的操作系 统是数据库安全的前提。 ➢ 操作系统应能保证数据库中的数据必须由DBMS 访问,而不允许用户越过DBMS,直接通过操作 系统访问。 ➢ 数据最后可以通过密码的形式存储到数据库中
5.1.2.1用户标识和鉴定 (Identification and Authentication) 数据库系统是不允许一个未经授权的用户对数据库进 行操作的。 用户标识和鉴定是系统提供的最外层的安全保护措施, 其方法是由系统提供一定的方式让用户标识自己的名 字或身份,系统内部矛盾记录着所有合法用户的标识, 每次用户要求进入系统时,由系统进行核实,通过鉴 定后才提供机器的使用权。 用户标识和鉴定的方法有多种,为了获得更强的安全 性,往往是多种方法并举,常用的方法有以下几种: U八◆回
返回 8 5.1.2.1 用户标识和鉴定 (Identification and Authentication) ➢ 数据库系统是不允许一个未经授权的用户对数据库进 行操作的。 ➢ 用户标识和鉴定是系统提供的最外层的安全保护措施, 其方法是由系统提供一定的方式让用户标识自己的名 字或身份,系统内部矛盾记录着所有合法用户的标识, 每次用户要求进入系统时,由系统进行核实,通过鉴 定后才提供机器的使用权。 ➢ 用户标识和鉴定的方法有多种,为了获得更强的安全 性,往往是多种方法并举,常用的方法有以下几种:
1.用一个用户名或用户标识符来标明用户的身份,系 统 以此来鉴别用户的合法性。如果正确,则可进入下 步的核实,否则,不能使用计算机。 用户标识符是用户公开的标识,它不足以成为鉴别用 户身份的凭证。为了进一步核实用户身份,常采用用 户名与口令( Password)相结合的方法,系统通过核对 口令判别用户身份的真伪。 令系统有一张用户口令表,为每个用户保持一个记录,包括用 户名和口令两部分数据。 令用户先输入用户名,然后系统要求用户输入口令。 令为了保密,用户在终端上输入的口令不显示在屏幕上。 令系统核对口令以鉴别用户身份。 3.通过用户名和口令来鉴定用户的方法简单易行,但该 方法在使用时,由于用户名和口令的产生和使用比较 简单,也容易被窃取,因此还可采用更复杂的方法。 U八◆《回
返回 9 1.用一个用户名或用户标识符来标明用户的身份,系统 以此来鉴别用户的合法性。如果正确,则可进入下一 步的核实,否则,不能使用计算机。 2.用户标识符是用户公开的标识,它不足以成为鉴别用 户身份的凭证。为了进一步核实用户身份,常采用用 户名与口令(Password)相结合的方法,系统通过核对 口令判别用户身份的真伪。 ❖ 系统有一张用户口令表,为每个用户保持一个记录,包括用 户名和口令两部分数据。 ❖ 用户先输入用户名,然后系统要求用户输入口令。 ❖ 为了保密,用户在终端上输入的口令不显示在屏幕上。 ❖ 系统核对口令以鉴别用户身份。 3.通过用户名和口令来鉴定用户的方法简单易行,但该 方法在使用时,由于用户名和口令的产生和使用比较 简单,也容易被窃取,因此还可采用更复杂的方法
◆例如,每个用户都预先约定好一个过程或者函数 鉴别用户身份时,系统提供一个随机数,用户根据 自己预先约定的计算过程或者函数进行计算,系统 根据计算结果辨别用户身份的合法性。 ◆例如,让用户记住一个表达式,如T=X+2Y,系统告 诉用户X=1,Y=2,如果用户回答T=5,则证实了该用 户的身份。 令当然,这是一个简单的例子,在实际使用中,还可 以设计复杂的表达式,以使安全性更好。系统每次 提供不同的X,Y值,其他人可能看到的是Ⅹ、Y的值, 但不能推算出确切的变换公式T U八◆回
返回 10 ❖例如,每个用户都预先约定好一个过程或者函数, 鉴别用户身份时,系统提供一个随机数,用户根据 自己预先约定的计算过程或者函数进行计算,系统 根据计算结果辨别用户身份的合法性。 ❖例如,让用户记住一个表达式,如T=X+2Y,系统告 诉用户X=1,Y=2,如果用户回答T=5,则证实了该用 户的身份。 ❖当然,这是一个简单的例子,在实际使用中,还可 以设计复杂的表达式,以使安全性更好。系统每次 提供不同的X,Y值,其他人可能看到的是X、Y的值, 但不能推算出确切的变换公式T