第4章数据库安全及维护

更新时间:2023-05-24 06:28:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库基本知识~

第4章 数据库安全及维护本章要点 数据库安全性控制原理 使用SQL Server 2000实现数据库安全性控制 数据库完整性控制原理 使用SQL Server 2000实现数据库完整性约束 数据库恢复技术 使用SQL Server 2000实现数据库的备份恢复 并发控制数据库原理及应用

2011年3月8日星期二

数据库基本知识~

4.1数据库安全性4.1.1 安全性概述计算机系统安全性是指为计算机系统建立和采取 的各种安全保护措施,以保护计算机系统中硬件、软 件及数据,防止因偶然或恶意的原因使系统遭到破坏, 数据遭到更改或泄漏等。 计算机系统安全主要包括三类安全性问题,技术安全 类、管理安全类和政策法律类。 技术安全性是指计算机系统中采用具有一定安全性 的硬件、软件来实现对计算机系统及其所存数据的安 全保护,当计算机系统受到无意或恶意的攻击时仍能 保证系统正常运行,保证系统内的数据不增加、不丢 失、不泄漏。数据库原理及应用2011年3月8日星期二

数据库基本知识~

管理安全性是指技术安全之外的,诸如软硬件意外故障、场 地的意外事故、管理不善导致的计算机设备和数据介质的物理破 坏、丢失等安全问题。 政策法律类安全性是指政府部门建立的有关计算机犯罪、数 据安全保密的法律道德准则和政策法规、法令。

4.1.2数据库安全性控制4.1.2.1 数据库安全与保密概述数据库系统,一般可以理解成两部分:一部分是数据库,按 一定的方式存取数据;另一部分是数据库管理系统(DBMS),为 用户及应用程序提供数据访问,并具有对数据库进行管理、维护 等多种功能。 数据库系统安全,包含两层含义: 第一层是指系统运行安全,它包括:法律、政策的保护,如 用户是否有合法权利,政策是否允许等;物理控制数据库原理及应用2011年3月8日星期二

数据库基本知识~

安全,如机房加锁等;硬件运行安全;操作系统安全,如数据文 件是否保护等;灾害、故障恢复;死锁的避免和解除;电磁信息 泄漏防止。 第二层是指系统信息安全,它包括:用户口令字鉴别;用户 存取权限控制;数据存取权限、方式控制;审计跟踪数据加密。

4.1.2.2 常见的数据库安全问题及原因(1) 脆弱的账号设置。 (2) 缺乏角色分离。 (3) 缺乏审计跟踪。 (4) 未利用数据库的安全特征。

4.1.2.3 安全性控制(1) 用户标识与鉴别 通过用户名和口令来鉴定用户 鉴别的方法多种多样,一般有: ●口令(Password) ●利用用户的个人特征 ●磁卡数据库原理及应用2011年3月8日星期二

数据库基本知识~

(2) 存取控制 由DBMS授权给有资格的用户访问数据库的权限,存 取 控制机制分为两部分: ① 定义用户权限,并将用户权限登记到数据字典中。 ② 合法权限检查,当

用户提出操作请求后,DBMS查找数 据字典,进行合法性检查,如用户的操作请求超出了定义的权 限,系统将拒绝执行此操作。 (3) 自主存取控制(DAC)方法 主要通过SQL的GRANT和REVOKE语句来实现。 自主存取控制能够通过授权机制有效地控制其他用户对敏 感数据的存取。但是由于用户对数据的存取权限是“自主”的, 用户可以自由地将数据的存取权限授予何人、决定是否也将 “授权”的权限授予别人,而系统对此无法控制。数据库原理及应用2011年3月8日星期二

数据库基本知识~

(4) 强制存取控制(MAC)方法 强制存取控制是对数据本身进行密级标记,无论数据如何复 制,标记与数据是一个不可分的整体,只有符合密级标记要求的 用户才可以操纵数据,从而提供了更高级别的安全性。 强制存取控制方法是建立在自主存取控制方法上的, 即只有 首先通过自主存取控制方法检查的用户,才有资格接受本节所述 的强制存取控制方法检查。 (5) 视图机制 通过视图机制把要保密的数据对无权存取的用户隐藏起来。 (6) 审计 把用户对数据库的所有操作自动记录下来放入审计日志中。 DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系 列事件,找出非法存取数据的人、时间和内容。 (7) 数据加密 对敏感的数据进行加密储存是防止数据泄露的有效手 段。原 始的数据(称为明文Plain text)在加密密钥的作用下,通过加密 系统加密成密文(Cipher text)在系统上传输。数据库原理及应用2011年3月8日星期二

数据库基本知识~

4.1.3 SQL Server 2000实现数据库安全性SQL Server2000在两种安全级别上验证用户:一 是登录身份验证,二是对数据库用户账户和角色的许 可权限。

4.1.3.1 登录身份验证如果用户准备建立与SQL Server的连接,就必须拥 有相应的登录账户。 Windows身份验证和SQL Server身份验证,两种身份验 证方式都有不同类型的登录账户。 (1)Windows身份验证 Windows账户或组控制用户对SQL Server 的访问, 在进行连接的时候,用户不必提供SQL Server登录账 户的用户名和密码, SQL Server系统管理员必须把 Windows 2000账户或Windows组定义为合法的SQL Server登录账户。数据库原理及应用2011年3月8日星期二

数据库基本知识~

(2)SQL Server身份验证 使用SQL Server身份验证的时候,SQL Server系统管理 员定义SQL Server登录账户的用户名和密码。当建立与SQL Server连接的过程中,用户必须同时提供SQL Server账户的 用户名和密码。 (3)身份验证模式 当SQL Server运行在Windows 2000平台上的时候,系 统管理员能够指定它运行在以下两种身份验证模式: Windows身份验证模式和混合模式。 ①Windows身份验证模式:只允许Windows 2000身份 验证,用户

不能指定SQL Server 登录账户。 ②混合模式:在这种身份验证模式中,如果用户准备建 立与SQL Server的连接,那么他既可以使用Windows身份验 证,也可以使用SQL Server身份验证。数据库原理及应用2011年3月8日星期二

数据库基本知识~

4.1.3.2 数据库用户账户和角色●数据库用户账户 Windows 2000用户或组,或者SQL Server登录账户, 它们都属于能够保证安全许可权限的用户账户,对于一 个数据库来说,用户账户是特定的。 ●角色 角色能够允许将多个用户归类到某个单元中,再对此 单元实施一定的许可权限。 SQL Server为常用的管理功 能提供预定义的服务器和数据库角色,用户还能够创建 自定义的数据库角色。SQL Server中,用户能够同时属 于多个角色。

数据库原理及应用

2011年3月8日星期二

数据库基本知识~

●角色类型 角色可以分为固定服务器角色、固定数据库角色、用户自 定义数据库角色三种类型: 固定服务器角色:在服务器级别提供管理特权的分组。在 服务器级别上,他们的管理与用户数据库无关。 固定数据库角色:在数据库级别提供管理特权的分组。 用户自定义数据库角色:用户可以创建自己的数据库角色 来表达组织内部分组的工作,用户不必为其中的各个成员分 别授予或废除许可权限。如果某角色的职能发生了改变,那 么也能非常容易地改变角色的许可权限,这种变更会自动应 用于每个角色成员。

数据库原理及应用

2011年3月8日星期二

数据库基本知识~

4.1.3.3 许可权限验证在每个数据库内部,可以为用户账户和角色分配执行 (或限制)某些动作的许可权限。在用户成功访问了数据库之 后, SQL Server就可以接受命令。验证步骤为,在用户执行 某个动作之后,客户端将发送Transact-SQL语句给 SQL Server;SQL Server接收到Transact-SQL语句之后,将检查 用户是否具有执行该语句的许可权限;如果有,SQL Server 执行相应的操作。否则,SQL Server返回错误信息。

4.1.3.4 利用企业管理器进行认证模式的设置其主要过程如下: ① 打开企业管理器,用右键单击要设置认证模式的服务器, 从快捷菜 单中选择“属性(properties)”选项,则出现SQL Server属性对话框。 ② 在SQL Server属性对话框中选择安全性选项。数据库原理及应用2011年3月8日星期二

数据库基本知识~

③ 在安全性选项栏中,身份验证中可以选择要设置的认证 模式,同时审核级别中还可以选择跟踪记录用户登录时的哪种 信息,例如登录成功或登录失败的信息等。 ④ 在启动服务账户中设置当启动并运行SQL Server时默认 的登录者中哪一位用户。 4.1.3.5 用户权限管理 (1)服务器登录账号和用户账号管理 SQL Server ●SQL Server服务器登录管理 ●用户帐号管理 在数据库中

,一个用户或工作组取得合法的登录帐号,只 表明该帐号通过了Windows NT认证或者SQL Server认证,但 不能表明其可以对数据库数据和数据库对象进行某种或者某些 操作,只有当他同时拥有了用户帐号后,才能够访问数据库。 (2)许可(权限)管理 在SQL Server中包括三种类型的许可:即对象许可、语句 许可和预定义许可三种许可类型:对象许可、语句许可和预定 义许可。数据库原理及应用2011年3月8日星期二

数据库基本知识~

● 对象许可 表示对特定的数据库对象,即表、视图、字段和存储过 程的操作许可,它决定了能对表、视图等数据库对象执行哪 些操作。 ● 语句许可 表示对数据库的操作许可,也就是说,创建数据库或者 创建数据库中的其它内容所需要的许可类型称为语句许可。 ● 预定义许可 是指系统安装以后有些用户和角色不必授权就有的许可。 使用SQL Server 企业管理器管理许可: SQL Server 可通过两种途径:即面向单一用户和面向数 据库对象的许可设置,来实现对语句许可和对象许可的管理, 从而实现对用户许可的设定。具体操作方法是用鼠标右键单 击某一数据库对象或某一用户,然后从弹出的快捷菜单中选 择“属性”命令,之后从弹出的对话框中设置相应的许可权 限即可。数据库原理及应用2011年3月8日星期二

数据库基本知识~

使用Transaction_SQL 语句管理许可: Transaction_SQL 语句使用grant、revoke和deny三 种命令来实现管理权限。 (1)GRANT语句 GRANT语句是授权语句,它可以把语句权限或者对 象权限授予给其他用户和角色。 授予语句权限的语法形式为: GRANT {ALL|statement[,...n]} TO security_account [,...n ] 授予对象权限的语法形式为: GRANT {ALL [PRIVILEGES]|permission [ ,...n ]} { [(column [,...n ])] ON {table|view} |ON {table|view} [(column[ ,...n ])] |ON {stored_procedure|extended_procedure} |ON {user_defined_function}数据库原理及应用2011年3月8日星期二

数据库基本知识~

} TO security_account [ ,...n ] [WITH GRANT OPTION] [ AS {group|role}] (2)DENY语句 DENY语句用于拒绝给当前数据库内的用户或者 角色授予权限,并防止用户或角色通过其组或角色成 员继承权限。 否定语句权限的语法形式为: DENY {ALL|statement [,...n ]} TO security_account [,...n] 否定对象权限的语法形式为: DENY {ALL [PRIVILEGES]|permission[,...n]} { [(column [,...n])] ON {table|view}数据库原理及应用2011年3月8日星期二

数据库基本知识~

|ON {table|view} [(column [ ,...n ]) |ON {stored_procedure|extended_procedure} |ON {user_defined_function} } {TO|FROM} security_account [ ,...n ] [CASCADE] [AS {group|role}]

4.1.3.6 角色管理SQL Server管理者可以将某些用户设置为某一角色, 这样只对角色进行权限设置便可以实现对所有用户权限的设 置,大大减少了管

理员的工作量。SQL Server提供了用户通 常管理工作的预定义服务器角色和数据库角色。

数据库原理及应用

2011年3月8日星期二

数据库基本知识~

(1) 服务器角色 服务器角色是指根据SQL Server的管理任务,以及这 些任务相对的重要性等级来把具有SQL Server管理职能的用 户划分为不同的用户组,每一组所具有的管理SQL Server的 权限都是SQL Server内置的,即不能对其进行添加、修改和 删除,只能向其中加入用户或者其他角色。 七种常用的固定服务器角色 : ①系统管理员:拥有SQL Server所有的权限许可。 SQL Server ②服务器管理员:管理SQL Server服务器端的设置。 ③磁盘管理员:管理磁盘文件。 ④进程管理员:管理SQL Server系统进程。 ⑤安全管理员:管理和审核SQL Server系统登录。 ⑥安装管理员:增加、删除连接服务器,建立数据库复 制以及管理扩展存储过程。 ⑦数据库创建者:创建数据库,并对数据库进行修改。数据库原理及应用2011年3月8日星期二

数据库基本知识~

(2) 数据库角色 数据库角色是为某一用户或某一组用户授予不同级别的管理 或访问数据库以及数据库对象的权限,这些权限是数据库专有的, 并且还可以使一个用户具有属于同一数据库的多个角色。SQL Server提供了两种类型的数据库角色:即固定的数据库角色和用 户自定义的数据库角色。 ● 固定的数据库角色 public:维护全部默认许可。 db_owner:数据库的所有者,可以对所拥有的数据库执行任 何操作。 db_accessadmin:可以增加或者删除数据库用户、工作组和 角色。 db_addladmin:可以增加、删除和修改数据库中的任何对象。 db_securityadmin:执行语句许可和对象许可。 db_backupoperator:可以备份和恢复数据库。 db_datareader:能且仅能对数据库中的任何表执行select操作, 从而读取所有表的信息。数据库原理及应用2011年3月8日星期二

数据库基本知识~

db_datawriter:能够增加、修改和删除表中的数据,但不 能进行select操作。 db_denydatareader:不能读取数据库中任何表中的数据。 db_denydatawriter:不能对数据库中的任何表执行增加、 修改和删除数据操作。 ●用户自定义角色 创建用户定义的数据库角色就是创建一组用户,这些用户 具有相同的一组许可。如果一组用户需要执行在SQL Server 中指定的一组操作并且不存在对应的Windows NT组,或者没 有管理Windows NT用户帐号的许可,就可以在数据库中建立 一个用户自定义的数据库角色。用户自定义的数据库角色有 两种类型:即标准角色和应用程序角色。 标准角色通过对用户权限等级的认定而将用户划分为不用 的用户组,使用户总是相对于一个或多个角色,从而实现管 理的安全性。数据库原理及应用2011年3

月8日星期二

数据库基本知识~

应用程序角色是一种比较特殊的角色。当我们打算让 某些用户只能通过特定的应用程序间接地存取数据库中的 数据而不是直接地存取数据库数据时,就应该考虑使用应 用程序角色。当某一用户使用了应用程序角色时,他便放 弃了已被赋予的所有数据库专有权限,他所拥有的只是应 用程序角色被设置的角色。 (3)管理角色的方式 ① 使用企业管理器管理角色 ● 管理服务器角色 ●管理数据库角色 ②使用存储过程管理角色 ●管理服务器角色 在SQL Server中,管理服务器角色的存储过程主要有两 个: sp_addsrvrolemember sp_dropsrvrolemember数据库原理及应用2011年3月8日星期二

数据库基本知识~

系统存储过程sp_addsrvrolemember可以将某一登录帐 号加入到服务器角色中,使其成为该服务器角色的成员。 其语法形式如下: sp_addsrvrolemember login,role 系统存储过程sp_dropsrvrolemember可以将某一登录 者从某一服务器角色中删除,当该成员从服务器角色中被 删除后,便不再具有该服务器角色所设置的权限。其语法 形式如下: sp_dropsrvrolemember [@loginame=]’login’, [@rolename=]’role’ ●管理数据库角色 ①sp_addrole:用来创建一个新的数据库角色,例如, sp_addrole role,owner。 ②sp_droprole:用于删除一个数据库角色,例如 sp_droprole role。数据库原理及应用2011年3月8日星期二

本文来源:https://www.bwwdw.com/article/hl24.html

Top