第四章数据库安全性
第四章 数据库安全性
数据库的一大特点是数据可以共享 数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享
2 数据库的一大特点是数据可以共享 数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享
如何限定有些用户只能访问特定的数据表或视图; 如何使有些数据库只对指定的用户开放; 以及如何阻止非法帐号登录? 这些问题都和数据库数据保护息息相关。 数据的安全性 数据的完整性
3 如何限定有些用户只能访问特定的数据表或视图; 如何使有些数据库只对指定的用户开放; 以及如何阻止非法帐号登录? ……这些问题都和数据库数据保护息息相关。 数据的安全性 数据的完整性
本章主要内容 计算机安全性概述 数据库安全性控制 数据库其他安全机制
4 本章主要内容 计算机安全性概述 数据库安全性控制 数据库其他安全机制
、计算机安全性概述 数据的安全性是指保护数据以防止因不合法的使用而造成数据的泄露、 更改和破坏。 计算机系统也存在安全性问题。 计算机系统安全性:为计算机系统建立和采取的各种安全保护措施,以 保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统 遭到破坏,数据遭到更改或泄露等。 数据库的安全性和计算机系统的安全性,包括计算机硬件、操作系统、 网络系统等的安全性,是紧密联系、相互支持的。 计算机安全不仅涉及到计算机系统本身的技术问题、管理问题,还涉及 法学、犯罪学、心理学的问题
5 一、计算机安全性概述 数据的安全性是指保护数据以防止因不合法的使用而造成数据的泄露、 更改和破坏。 计算机系统也存在安全性问题。 计算机系统安全性:为计算机系统建立和采取的各种安全保护措施,以 保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统 遭到破坏,数据遭到更改或泄露等。 数据库的安全性和计算机系统的安全性,包括计算机硬件、操作系统、 网络系统等的安全性,是紧密联系、相互支持的。 计算机安全不仅涉及到计算机系统本身的技术问题、管理问题,还涉及 法学、犯罪学、心理学的问题
二、数据库安全性控制 1、用户标识与鉴别 用户标识:用户名( User name)、用户标识号(UID) 2、存取控制 数据库安全性主要指DBMS的存取控制机制。 ①定义用户权限,并登记到数据字典中(安全规则授权规则); ②合法权限检查
6 二、数据库安全性控制 1、用户标识与鉴别 用户标识:用户名(User Name)、用户标识号(UID) 2、存取控制 数据库安全性主要指DBMS的存取控制机制。 ① 定义用户权限,并登记到数据字典中(安全规则/授权规则); ② 合法权限检查
用户权限 合法权限 DBMS安 定义 检查 全子系统
7 用户权限 定义 合法权限 检查 DBMS安 全子系统
目前,大型的DBMS一般都支持自主存取控制(DAC);有些 DBMS同时还支持强制存取控制(MAC)。 (1)自主存取控制:用户可以“自主”地决定将数据的存取权限 授予何人,决定是否也将“授权”的权限授予别人; (2)强制存取控制:通过对比用户的许可证级别和数据库对象的 密级,最终确定用户是否能够存取数据库对象
8 目前,大型的DBMS一般都支持自主存取控制(DAC);有些 DBMS同时还支持强制存取控制(MAC)。 (1)自主存取控制:用户可以“自主”地决定将数据的存取权限 授予何人,决定是否也将“授权”的权限授予别人; (2)强制存取控制:通过对比用户的许可证级别和数据库对象的 密级,最终确定用户是否能够存取数据库对象
3、自主存取控制(DAC) 目前,大型的DBMS几乎都支持DAC,SQL通过 GRANT语句和 REVOKE 语句对DAC提供支持。 用户权限包括:数据库对象和操作类型。 在数据库系统中,定义存取权限称为授权。 授权和回收 权限的名称 GRANT GRANTALL PRIVILEGES ]3 语句格式 I permission [ column[.n)[. n] 指定授予其 ON[css: securable ]to principal l.被授予权 权限的对象 限的对象 WITH GRANT OPTION [AS principal 允许被授权者在获得指定权限的同时 指定当前数据库中执行 GRANT语 还可以将指定权限授予其他用户、角 句的用户所属的角色名或主名。 色或 Windows组
9 3、自主存取控制(DAC) 目前,大型的DBMS几乎都支持DAC,SQL通过GRANT语句和REVOKE 语句对DAC提供支持。 用户权限包括:数据库对象和操作类型。 在数据库系统中,定义存取权限称为授权。 4、授权和回收 • GRANT 语句格式: GRANT { ALL [ PRIVILEGES ] } | permission [ ( column [ ,...n ] ) ] [ ,...n ] [ ON [ class :: ] securable ] TO principal [ ,...n ] [ WITH GRANT OPTION ] [ AS principal ] 权限的名称 指定授予其 权限的对象 被授予权 限的对象 允许被授权者在获得指定权限的同时 还可以将指定权限授予其他用户、角 色或Windows组。 指定当前数据库中执行GRANT语 句的用户所属的角色名或主名
EG:给 PXSCJ数据库上的用户 david和wang授予创建表的权限 GRANT CREATE TABLE 数据库级的权限不需 To david, wang 要指定ON子句 EG:把查询XSB表的权限授给用户 zhang GRANT SELECT ON XSB TO Zhang EG:把对XSB表和KCB表的全部操作权限授予用户lly和zhao GRANT ALL PRIVILEGES ON XSB KCB TO lily, zhao SQL Server2008不推荐使用此选项,保留此选项仅用于向后兼容。它不会 授予所有可能的权限
10 EG:给PXSCJ数据库上的用户david和wang授予创建表的权限。 GRANT CREATE TABLE TO david,wang EG:把查询XSB表的权限授给用户zhang。 GRANT SELECT ON XSB TO zhang; EG:把对XSB表和KCB表的全部操作权限授予用户lily和zhao。 GRANT ALL PRIVILEGES ON XSB,KCB TO lily,zhao; 数据库级的权限不需 要指定ON子句。 SQL Server 2008不推荐使用此选项,保留此选项仅用于向后兼容。它不会 授予所有可能的权限