IBM DB2传统的行和列访问控制方法

为了遵守世界各地多个国家的各种政府法规和行业标准,组织需要实施程序和方法来确保信息得到充分保护。这些法规和标准的规定,个人只允许访问执行其工作所需要的信息子集。例如,根据 US Health Insurance Portability and Accountability Act (HIPAA),医生被授权查看自己的病人的医疗记录,但没有权利查看其他病人的记录。同样,根据 Payment Card Industry Data Security Standard (PCI DSS),信用卡号等持卡人数据的访问必须根据需要知道的业务进行限制。对于存储在关系数据库中的信息,在行和列级别控制数据访问的能力可以满足这一要求。

本文首先回顾解决行和列访问控制问题的传统方法,并介绍了行权限和列掩码这两个新的概念,它们是传统方法的一个高级且更有效的替代方法。在此之后,对新的权限和掩码依赖项进行讨论,并介绍安全函数和安全触发器。用例场景说明了如何使用行权限和列掩码来满足所需的访问控制。最后,本文提供了在使用行权限和列掩码时要遵循的一套最佳实践。

用于实现的行和列访问控制的传统方法有三种:数据库视图、基于应用程序的安全性和基于标签的访问控制 (LBAC)。

2.1 数据库视图

对于每个需要保护的数据库表,下面的步骤总结了使用数据库视图实现行和列访问控制的典型步骤。

1. 数据库开发人员创建包括影响所有表用户的所有安全规则的单个视图,或为每个用户或用户组创建单独的视图。

2. 数据库开发人员对一个或多个视图授予适当的特权。

3. 数据库开发人员撤销所有用户和组对基表的访问权限。

4. 如果为不同的用户或组创建多个视图,应用程序架构师应确保该应用程序包含根据用户身份和/或用户组成员将用户查询路由到适当视图的逻辑。

5. 数据库开发人员和应用程序架构师测试该实现。

当不同限制的数量较少,或这些限制只影响大型和易于确定的用户组的情况下,数据库视图运行良好。不过,当这些条件都不能满足时,视图在使用中会引起一系列问题:

• 当尝试在一个视图中包含所有限制时,视图的定义可能会变得复杂。这种复杂性可能会加剧系统的限制,并可能使视图的维护变得困难。如果采用替代方法,定义许多简单的视图,每个视图针对一组特定用户实施限制,这可以简化视图定义的维护,那么将用户请求路由到正确的视图又成为另一个问题。在这种情况下,数据库开发人员往往选择在应用程序中解析请求,而不是在数据库中进行解析。

• 如果用户在访问数据时可以忽略视图,例如,可以直接访问底层的表,那么这些限制就无法执行。

• 具有 DATAACCESS 授权的用户仍然可以完全访问数据。

2.2 基于应用程序的安全性

对于每个需要保护的数据库表,下面的步骤总结了在应用程序中实现行和列访问控制的典型步骤。

1. 应用程序将所有数据提取到应用程序内存中,然后应用自定义逻辑,根据用户的身份筛选出结果集。或者,应用程序构建部分或全部筛选逻辑到实际 SQL 语句中,并提交到数据库,以便部分或全部筛选逻辑会由数据库执行。

2. 数据库开发人员和应用程序架构师测试该实现。 虽然基于应用程序的安全性看起来可能很有吸引力,但这种方法也有若干个缺点:

• 安全策略被暴露给应用程序编程人员。
• 该方法易于出错,并且要求大量代码审查。
• 需要通过应用程序变更来反映安全策略的变更。
• 只有在通过应用程序访问时,数据才受到保护。这种保护局限性制约了对数据使用特设查询和报表生成等工具的能力。
• 具有 DATAACCESS 授权的用户仍然可以完全访问数据。

2.3 基于标签的访问控制 (LBAC)

对于每个需要保护的数据库表,下面的步骤总结了使用 LBAC 实现行和列访问控制的典型步骤。

1. 数据库安全管理员(具有 SECADM 授权的用户)创建安全标签组件和需要将安全要求映射到安全标签中的安全策略对象。

2. 数据库安全管理员创建用户在访问受保护的表时所需要的安全标签对象。

3. 数据库安全管理员向适当的用户授予安全标签和豁免权。

4. 数据库开发人员修改表,添加一个安全标签列,并将一个安全政策对象关联到表。

5. 数据库开发人员和应用程序架构师测试该实现。

LBAC 是一个强大的安全模式,极少适用于商业客户,因为它需要对数据进行分类,并有一套固定的安全规则,即,no read up rule 和 no write down rule。LBAC 和多层安全性 (MLS) 一般都针对情报和国防客户,这是 MLS 起源的地方。如需有关 MLS 和其相关规则的详细信息,请参阅在参考资料一节中列出的文件。

时间: 2024-08-02 16:28:49

IBM DB2传统的行和列访问控制方法的相关文章

利用行和列安全性提供特定于国家和地区的数据视图

假设您的企业决定将所有单独的数据库和数据集市整合为单独一个企业http://www.aliyun.com/zixun/aggregation/8302.html">数据仓库.除了必要的技术工作之外,整合数据集市可能带来诸多挑战.构建企业数据仓库往往意味着改动现有策略.创建新策略.组织重组.审查和更改最佳实践,依此类推. 当然,整合同样也能带来许多优势.举例来说,通过消除数据孤岛,多个业务线将能够访问相同的信息,允许所有人根据相同的信息制作报表,最终提高报表准确性. 将来自多个国家(行政区)

使用 IBM DB2 Analytics Accelerator 加速批处理

简介 IBM DB2 Analytics Accelerator 是一个工作负载优化设备,它使公司能够将业务洞察集成到流程中,从而推进成功战略的实施.它将 System z 服务质量和 IBM DB2 Analytics Accelerator 的硬件加速分析相结合,能够在高度安全并且可靠的环境中加快复杂查询速度,提供前所未有的响应时间. DB2 Analytics Accelerator 带来的一个关键要素是,它透明地集成到 DB2 中,这支持在运行原封不动的工作负载和查询的同时,自动获得更快

在批处理系统中引入IBM DB2 Analytics Accelerator

IBM DB2 Analytics Accelerator 是一个工作负载优化设备,它使公司能够将业务洞察集成到流程中,从而推进成功战略的实施.它将 System z® 服务质量和 IBM DB2 Analytics Accelerator 的硬件加速分析相结合,能够在高度安全并且可靠的环境中加快复杂查询速度,提供前所未有的响应时间. DB2 Analytics Accelerator 带来的一个关键要素是,它透明地集成到 DB2 中,这支持在运行原封不动的工作负载和查询的同时,自动获得更快的响

使用IBM DB2 pureScale Feature与Q Replication实现可伸缩性和业务连续性

要沉着应对如今愈加全球化和竞争激烈的市场,离不开这样一种http://www.aliyun.com/zixun/aggregation/14345.html">数据处理架构,该架构能够随未来的战略需求增长而灵活地增长,能在发生组件故障.维护活动和灾难事件时确保业务连续性. 对某些企业而言,哪怕一小时的停工都可能导致数百万美元的收入损失,更别说对公司声誉的损害和潜在的客户流失.全球化的企业跨不同时区而运作,无时无刻不在提供业务服务.为系统维护和升级保留的离线时窗已不复存在.分布式的企业需要能

调优IBM DB2 UDB SQL存取路径

简介 Visual Explain 是 IBM DB2 Universal Database 中的杰出工具,程序员和 DBA 用它来详细说明 DB2 优化器为 SQL 语句所选择的存取路径.事实上,Explain 应该是您性能监控策略的 关键组件.Explain 为解决许多类型的性能问题提供了价值无法估量的信息,因为它提供这样的细节: DB2 在"幕后"所做的工作,以实现 SQL 请求的数据需求 DB2 是否使用可用的索引,如果使用,DB2 如何使用它们 为满足连接条件而访问 DB2

IBM DB2 日常维护汇总(六)_DB2

正在看的db2教程是:IBM DB2 日常维护汇总(六). 91.如何创建DB2的概要表? DB2的概要表功能类似于ORACLE的实体化视图! 语法为: CREATESUMMARYTABLETABLE_NAMEAS(FULLSELECT)... 例如: 定义一个可以刷新的概要表: CREATESUMMARYTABLETABLE_NAMEAS(SELECT*FROMTABLE_NAME1WHERECOL1='AAA') DATAINITIALLYDEFERREDREFRESHDEFERRED 其中

IBM DB2 Express-C 10.1免费版的价值

在 6 年中经过无数更新之后,DB2 Express-C 10 终于在 2012 年 4 月 30 日得以发布,它可供任何人下载或在云上免费使用.我们不会再提供其他使用方式. DB2 Express-C 如何避免变成试用软件 商用产品提供免费版在 2012 年已不再是件新鲜事.开放源码运动带来了人们对免费产品期待的一种气氛,并且许多软件提供商也以发布其商用产品的免费版本来回应这一运动(出于某种原因,律师不喜欢 "免费" 这个词).提供商用产品免费版并不是一项容易的决定.毕竟,如果一个产

中文机器名引起BEA ALBPM,IBM DB2之水土不服?

http://yulimin.javaeye.com/blog/290270   1.年初在给开发人员培训BEA ALBPM时,所有的学员都可以顺利地在Studio里开发发流程,然后开始试运行,但是到测试运行时,却有一个学员无论如何也启动不了测试服务器,最好发现是机器名为中文名的问题,这位兄弟是借来的笔记本电脑来参加培训的,于是改之重启后,一切顺利.狂晕... 2.这次碰到IBM DB2,单元测试访问WebSphere上面的DataSource,出现异常 表面上看来又是水土不服的中文字符集转换之

Excel2007基础教程:删除行和列

Excel2007基础教程:删除行和列 您可能也想在一张工作表中删除多个行或列.例如,工作表中可能包含不再需要的旧数据. 要删除一行或多行,可使用下列方法: 单击工作表边界的行号选择一整行或多行.右击并从快捷菜单选择"删除". 把单元格指针移到要删除的行上,然后选择"开始" -> "单元格" -> "删除" -> "删除工作表行".如果选择了列中的多个单元格, Excel 将删除选中的所有