数据库基本安全架构

上传人:cn****1 文档编号:464510625 上传时间:2022-11-02 格式:DOCX 页数:11 大小:22.35KB
返回 下载 相关 举报
数据库基本安全架构_第1页
第1页 / 共11页
数据库基本安全架构_第2页
第2页 / 共11页
数据库基本安全架构_第3页
第3页 / 共11页
数据库基本安全架构_第4页
第4页 / 共11页
数据库基本安全架构_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数据库基本安全架构》由会员分享,可在线阅读,更多相关《数据库基本安全架构(11页珍藏版)》请在金锄头文库上搜索。

1、数据库基本安全架构1.1. 数据库安全机制考虑数据库系统面对安全的挑战,业界通常采用以下技术对安全进行控制:身份验证访问控制权限管理审计加密数据完整性以下是针对不同的数据库安全风险可采用的数据库安全技术对照表。安全风险解决之道安全技术未验证用户确认用户身份帐户认证未授权的数据存取限制数据存取访问控制加密存储数据存储数据加密限制权限权限管理网络数据侦听、窃取保护网络网络加密数据破坏备份恢复数据库备份账号密码脆弱强制密码安全密码规则缺之跟踪监控用户的行为安全审计系统入侵加密敏感数据存储数据加密技术及时修补安全漏洞安全补丁1.2. 成熟数据库安全机制1.2.1.账户认证机制数据库安全性中最基本的概念

2、之一就是验证。系统通过这个过程来证实用户 身份。用户可以通过提供身份证明或验证令牌来响应验证请求。用户提供身份标识表示其声称自己是被授权可访问该环境的人,密码则将提 供用户的验证证据。当然,这种验证假定用户的密码受到很好的保护,而且是唯 个知道这个密码的人。用户验证由数据库系统或者是数据库系统之外的安全性工具完成,许多 大型的数据据库系统都提供了用户验证的功能。如果采用数据库系统之外的安全 性工具,这些工具通常是操作系统的一部分或独立第三方身份验证工具。事实上, 安全性不仅是数据库问题,操作系统厂商也要花费很多的时间、金钱和心思确保 他们的产品是安全的。但是,有些操作系统并没有本地安全机制。如

3、果使用的是 没有安全机制的操作系统,那可以把环境配置成依靠在更安全的系统上运行的 数据库系统服务器来提供这种安全性。也可以采用独立的第三方身份验证工具(如由Open Group定义的分布式计算环境安全服务(Distributed Computing Environment (DCE) Security Services)来给数据库系统环境添加一层安全层。 数据库系统可以协调这些外部安全工作与其安全主动性来保护事务或分析环境。一旦用户身份验证成功,数据库系统记下用户的身份标识和其它相关的安 全信息,如用户组列表。用户必须使用 授权名或授权标识以被 数据库系统 识 别,授权名或授权标识可以与用户标

4、识或映射值相同。这一连接信息将在用户连 接期间保留。用户验证的方式因为验证可以由数据库系统、操作系统或第三方认证工具处理,所以数据 库系统的验证 可以通过参数的配置来选择的不同验证选项。数据库系统 使用这参数确定验证应该以何种方式、在何处发生。设置在逻辑上可以分组为以下不同类别:SERVER (服务器)、Client (客 户机)、第三方工具(如DCE)。服务器验证服务器验证提供两种方式:普通方式缺省安全性机制,指明验证应该使用服务器的操作系统在服务器 上发生。如果用户标识和密码是在连接期间指定的,那么数据库系统将 调用操作系统函数来验证提交的用户标识和密码。(在基于Windows的 环境中,

5、用户标识常被称为用户名。用户名和密码合起来常被称为用户账 户。)加密方式 本质上同缺省选项是一样的,只有一点例外,即从客户机传到 服务器的密码是加密的。数据库系统在连接时使用密码加密技术和 Diffie-Hellman算法为加密算法生成密钥。Client (客户机)验证客户机验证 指的是用户身份验证将在客户机上发生。如果客户机驻留在原 本就具有安全特性的操作系统(例如,AIX)上,那么它就是可信任客户机。通 常,除Microsoft Windows 95和98被认为不可信任之外,所有客户机都是可 信任的。如果服务器接收到来自可信任客户机和不可信任客户机的请求,那么根据 配置选项允许可信任客户机

6、使用客户机验证(clie nt authe ntication)获得访问权, 而不可信任客户机则必须提供密码才能成功验证。第三方产品验证选项一些管理员愿意实现第三方产品安全性服务,原因是它提供用户和密码集中 式管理,不传送明文密码和用户标识,并且向用户提供单次登录。数据库系统 使 用第三方产品来提供对安全性服务的集成支持。1.2.2. 视图控制机制视图的作用不同的用户对数据库中数据管理和使用的范围是不同的。为此,DBMS提供 了将数据分类的功能,即建立视图。管理员把某用户可查询的数据逻辑上归并起 来,简称一个或多个视图,并赋予名称,在把该视图的查询权限授予该用户(也 可以授予多个用户)。视图经

7、常用于对数据设置行级保密和列级保密。例如,可以授权用户访问一 个视图,这个视图只显示该用户可以访问的行,而不显示表中所有行。同样,可 以通过视图限制该用户访问的列。视图的实现视图是数据库的一个子集,它仅包含用户有权访问的信息。这样单个用户的 所有查询仅在自己的数据库子集上进行。子集视图保证用户不会访问允许范围之 外的其它设计。除了元素之外,视图由数据库中相应的一系列关系构成。用户可 以在已有的属性元素上进行相应的操作。视图(v i e w )像表一样由列组成,其查询方式与表相同。但是视图中没有数 据。从理论上讲,可以把视图看作是覆盖一个或多个表的“蒙版”,视图中的列 可以在一个或多个基本表中找

8、到。所以视图不使用物理存储位置来存储数据。对一个视图进行查询时,视图将查询其基于的表,并且以视图定义所规定的 格式和顺序返回值。由于视图没有直接相关的物理数据,因此视图是一种非常安 全的数据保护手段。1.2.3. 访问控制机制由于数据库中存放着大量的数据,为了防止数据被非法地使用,有必要限制 合法用户操纵数据库的权限。数据库中的权限可以分为系统级权限和对象级权限。 系统级权限用来控制整个数据库的访问权限,例如创建或删除数据库对象的权限。 对象级权限使用户可以访问不属于自己的数据库对象。可以通过授权来对不同的数据库用户授予不同的系统级和对象级权限。系统权限可以使用角色来管理对用户有效的系统级权限

9、。这些权限包括crea tetable和al ter index等等。对于每种数据库对象的操作都是由各自的权限授权 的。例如,一个用户可以被授予CREATE TABLE权限,而不是CREATE TYPE权限。 可以创建一些自定义的系统级角色,这些角色只向用户授予他们在数据库中所需 的权限而不是过多的特权。以Oracle 8i为例,可以使用系统级角色分派以管理数据库的系统级命令。 可以创建自定义的系统级角色或使用数据库自带的角色。可通过系统级授予的权 限。下表列出了 Oracle 8i提供的11个系统级角色。使用这些角色就能对授予数据库 管理角色的系统级权限进行限制。Oracle8i提供的系统级

10、角色角色授予角色的权限CONNECTALTER SESSION、 CREATE CLUSTER. CREATEDATABASELINK、REATESEQUENCE、CREATE SESSION.CREATESYNONYM、 CREATETABLE、 CREATEVIEWCREATEVIEWCREATECLUSTER、 CREATEPROCEDURE、 CREATESEQUENCE. CREATETABLE、 CREATETRIGGERRESOURCECREATECLUSTER、 CREATEPROCEDURE、 CREATEDBA全部系统权限WITHADMINOPTIONEXP_FULL_DA

11、TABASESELECTANYTABLE、 BACKUPANYTABLE、 INSERT.DELETE. ANDUPDATEONTHETABLESSYS.INCVID、SYS.INCFIL、ANDSYS.INCEXPIMP_FULL_DATABASEBECOMEUSERDELETE_CATALOG_ROLE所有字典软件包上的DELETE权限EXECUTE_CATALOG_ROLE所有字典软件包上的EXECUTE权限SELECT_CATALOG_ROLE所有类别表和视图上的SELECT权限CREATETYPECREATETYPE、 EXECUTE. EXECUTEANYTYPE、ADMINOPT

12、ION、 GRANTOPTIONRECOVERY_CATALOG_OWNERDROPROLERECOVERY_CATALOG_OWNER、CREATEROLE、RECOVERY_CATALOG_OWNER、 CREATE TRIGGER.CREATEPROCEDURETORECOVERY_CATALOG_OWNERHS_ADMIN_ROLEHS_EXTERNAL_OBJECT、 HS_EXTERNAL_USER对象权限对数据库中对象的访问是通过权限(privilege)来完成的。数据库管理系统 通过grant命令就可以针对特定的数据库对象使用特定的数据库命令。例如,如 果用户THUMPER拥有

13、一个叫作EMPLOYEE的表,数据库管理员将此表的Select 权授予全部用户(PUBLIC)。那么全部用户(PUBLIC)就可以从THUMPER的EMPLOYEE 表中选择记录。数据库管理员通过授权机制,将授予权限存于数据字典中。对表、视图、序 列(以及它们的同义词)的访问,加上执行过程、函数、软件包及类型的能力都可 以授权给用户。以Oracle 8i为例,下表是数据库对象权限列表。允许的对象权限权限授予能力SELECT可查询对象INSERT可以把行插入对象中,该权限可授予对 象的特定列UPDATE可更新对象的行,该权限可授予对象的 特定列DELETE可从对象中删除行ALTER可修改对象IN

14、DEX可以在表上创建索引REFERENCES可以创建引用表的外键EXECUTE可以执行函数、软件包、过程、库或类型READ可访问目录可以使用wi th grant opt ion子句向授与用户传递授权能力,以便在基对象 上进一步授权。下面的SQL *Plus清单就示出了一个这样的例子。在这个例子中, 用户用with gra nt opt ion选项向第二个用户授予在EMPLOYEE表上SELECT和部分 UPATE访问的权限。这个用户又将其中一个权限授予另一用户JFISHER。如果EMPLOYEE是一个分区表,不允许只对它的一个分区授予SELECT访问权。 不过,可以创建只从一个分区中选择数据

15、的视图,然后把对这个视图的SELECT 访问权授予用户。该视图是一个附加的管理对象,但是可以用它实现分区级数据 安全。角色权限对象权限控制管理工作复杂,可以通过创建角色(role)即权限组一来简化 权限的管理。对于有大量用户的应用程序,角色将大大减grant命令的使用量。 由于角色可以用口令保护且能被动态地允许和禁止,所以它们给数据库增加了一 个附加安全层。以Oracle 8i为例,数据库管理系统提供了一些系统级角色,如connec t、 resource和dba等。角色就是一组权限的集合。connec t角色一般是授予最终用户, 它具有创建会话、表和视图等的能力,但它未给用户任何表空间的定额。由于用 户没有表空间定额,所以也就不能创建表。resource角色是授予开发人员的,它 可以创建各种数据库对象,并且会给用户无限的表空间。如果用户具有无限的表 空间,它可以写一个小的脚本,然后恶意将系统用垃圾数据填满,这样数据库系 统也就无法运行,并将直接导致最终的瘫痪。所以不要轻易地把resource角色赋 给用户。dba角色包括了所有的系统级权限,并具有将这些权限授予其他

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号