- 数据仓库教程
- DWH - 首页
- DWH - 概述
- DWH - 概念
- DWH - 术语
- DWH - 交付流程
- DWH - 系统流程
- DWH - 架构
- DWH - OLAP
- DWH - 关系型 OLAP
- DWH - 多维 OLAP
- DWH - 模式
- DWH - 分区策略
- DWH - 元数据概念
- DWH - 数据集市
- DWH - 系统管理员
- DWH - 流程管理员
- DWH - 安全性
- DWH - 备份
- DWH - 调优
- DWH - 测试
- DWH - 未来展望
- DWH - 面试题
- DWH 有用资源
- DWH - 快速指南
- DWH - 有用资源
- DWH - 讨论
数据仓库 - 安全性
数据仓库的目标是使大量数据易于用户访问,从而允许用户提取关于整个业务的信息。但是我们知道,可能会对数据应用一些安全限制,这可能会成为访问信息的障碍。如果分析师对数据的视图受到限制,那么就不可能捕捉到业务内部趋势的完整画面。
可以对每个分析师的数据进行汇总,然后传递给管理层,在那里可以对不同的汇总进行汇总。由于汇总的汇总可能与整体汇总不同,因此除非有人对整个数据进行分析,否则可能会错过数据中的一些信息趋势。
安全需求
添加安全功能会影响数据仓库的性能,因此尽早确定安全需求非常重要。数据仓库上线后很难添加安全功能。
在数据仓库的设计阶段,我们应该记住以后可能会添加哪些数据源,以及添加这些数据源的影响。在设计阶段,我们应该考虑以下可能性。
新的数据源是否需要实施新的安全和/或审计限制?
是否添加了对已普遍可用数据访问受限的新用户?
当未来的用户和数据源未知时,就会出现这种情况。在这种情况下,我们需要利用业务知识和数据仓库的目标来了解可能的需求。
以下活动会受到安全措施的影响:
- 用户访问
- 数据加载
- 数据移动
- 查询生成
用户访问
我们首先需要对数据进行分类,然后根据用户可以访问的数据对用户进行分类。换句话说,用户根据他们可以访问的数据进行分类。
数据分类
可以使用以下两种方法对数据进行分类:
可以根据数据的敏感性对其进行分类。高度敏感的数据被分类为高度限制,而不太敏感的数据被分类为限制较少。
也可以根据职能对数据进行分类。此限制仅允许特定用户查看特定数据。在这里,我们限制用户只查看他们感兴趣且负责的那部分数据。
第二种方法存在一些问题。为了理解,让我们举个例子。假设您正在为银行构建数据仓库。假设存储在数据仓库中的数据是所有账户的交易数据。这里的问题是,谁被允许查看交易数据?解决方案在于根据职能对数据进行分类。
用户分类
可以使用以下方法对用户进行分类:
可以根据组织中用户的层次结构对用户进行分类,即根据部门、科室、组等对用户进行分类。
也可以根据用户的角色对用户进行分类,根据其角色将跨部门的人员分组。
基于部门的分类
让我们举一个数据仓库的例子,其中用户来自销售和营销部门。我们可以通过自上而下的公司视图进行安全控制,访问权限集中在不同的部门。但是,不同级别的用户可能存在一些限制。该结构如下图所示。
但是,如果每个部门访问不同的数据,那么我们应该分别为每个部门设计安全访问权限。这可以通过部门数据集市来实现。由于这些数据集市与数据仓库分开,因此我们可以对每个数据集市强制执行单独的安全限制。这种方法如下图所示。
基于角色的分类
如果数据通常对所有部门可用,那么遵循角色访问层次结构非常有用。换句话说,如果数据通常被所有部门访问,那么请根据用户的角色应用安全限制。角色访问层次结构如下图所示。
审计需求
审计是安全的一个子集,是一项代价高昂的活动。审计可能会给系统带来沉重的开销。为了及时完成审计,我们需要更多的硬件,因此建议尽可能关闭审计。审计需求可分为以下几类:
- 连接
- 断开连接
- 数据访问
- 数据更改
注意 - 对于上述每一类,都需要审计成功、失败或两者兼而有之。从安全原因的角度来看,失败的审计非常重要。失败审计很重要,因为它们可以突出未经授权或欺诈性的访问。
网络需求
网络安全与其他安全一样重要。我们不能忽视网络安全需求。我们需要考虑以下问题:
在将数据传输到数据仓库之前,是否需要对其进行加密?
数据可以采取哪些网络路由的限制?
需要仔细考虑这些限制。以下是需要记住的几点:
加密和解密过程会增加开销。这需要更多的处理能力和处理时间。
如果系统已经是加载系统,则加密的成本可能很高,因为加密由源系统承担。
数据移动
移动数据时存在潜在的安全隐患。假设我们需要将一些受限数据作为平面文件进行传输以进行加载。当数据加载到数据仓库时,会提出以下问题:
- 平面文件存储在哪里?
- 谁有权访问该磁盘空间?
如果我们谈论这些平面文件的备份,则会提出以下问题:
- 您是备份加密版本还是解密版本?
- 这些备份是否需要制作到单独存储的专用磁带上?
- 谁有权访问这些磁带?
还需要考虑其他一些形式的数据移动,例如查询结果集。创建临时表时提出的问题如下:
- 临时表将存储在哪里?
- 如何使这样的表可见?
我们应该避免意外违反安全限制。如果具有访问受限数据的用户可以生成可访问的临时表,则未经授权的用户可以查看数据。我们可以通过为具有访问受限数据的用户提供单独的临时区域来克服这个问题。
文档
需要对审计和安全需求进行适当的记录。这将被视为证明的一部分。本文件可以包含从以下方面收集的所有信息:
- 数据分类
- 用户分类
- 网络需求
- 数据移动和存储需求
- 所有可审计的操作
安全性对设计的影响
安全性会影响应用程序代码和开发时间表。安全性会影响以下领域:
- 应用程序开发
- 数据库设计
- 测试
应用程序开发
安全性会影响整体应用程序开发,还会影响数据仓库重要组件(如加载管理器、仓库管理器和查询管理器)的设计。加载管理器可能需要检查代码以过滤记录并将其放置在不同的位置。也可能需要更多转换规则来隐藏某些数据。此外,可能需要额外的元数据来处理任何额外的对象。
为了创建和维护额外的视图,仓库管理器可能需要额外的代码来强制执行安全性。可能必须在数据仓库中编写额外的检查代码,以防止其被欺骗地将数据移动到不应该可用的位置。查询管理器需要更改以处理任何访问限制。查询管理器需要了解所有额外的视图和聚合。
数据库设计
数据库布局也会受到影响,因为当实施安全措施时,视图和表的数量会增加。添加安全性会增加数据库的大小,从而增加数据库设计和管理的复杂性。它还会增加备份管理和恢复计划的复杂性。
测试
测试数据仓库是一个复杂而漫长的过程。向数据仓库添加安全性也会影响测试时间复杂性。它通过以下两种方式影响测试:
它会增加集成和系统测试所需的时间。
需要测试的功能增加了,这将增加测试套件的大小。