Dwh 简明教程

Data Warehousing - Security

数据仓库的目标是让用户可以轻松访问大量数据,从而让用户能够提取有关整个业务的信息。但我们知道,可以对数据应用一些安全限制,这可能会成为访问信息时的障碍。如果分析师对数据的看法受到限制,那么就不可能全面了解业务中的趋势。

可以汇总每个分析师的数据并传递给管理层,在管理层可以汇总不同的汇总。由于汇总汇总与整体汇总不同,因此有可能错过数据中的一些信息趋势,除非有人整体分析数据。

Security Requirements

添加安全功能会影响数据仓库的性能,因此尽早确定安全需求非常重要。在数据仓库正式投入使用后添加安全功能很困难。

在数据仓库的设计阶段,我们应该记住将来可能添加哪些数据源,以及添加这些数据源会产生什么影响。我们在设计阶段应该考虑以下可能性。

  1. 新数据源是否需要实施新的安全和/或审计限制?

  2. 是否添加了对已普遍可用的数据具有受限访问权限的新用户?

当未来的用户和数据源不明确时,会出现这种情况。在这种情况下,我们需要利用业务知识和数据仓库的目标来了解可能的条件。

以下活动会受到安全措施的影响 −

  1. User access

  2. Data load

  3. Data movement

  4. Query generation

User Access

我们需要先对数据进行分类,然后再根据用户可以访问的数据对用户进行分类。换句话说,用户会根据其可访问的数据进行分类。

Data Classification

可以使用以下两种方法对数据进行分类 −

  1. 可以根据其敏感性对数据进行分类。高度敏感的数据归类为高度受限,敏感性较低的数据归类为受限性较低。

  2. 还可以根据工作职责对数据进行分类。此限制仅允许特定用户查看特定数据。我们在此限制用户仅查看他们感兴趣并负责的数据部分。

第二种方法存在一些问题。为了理解,我们举个例子。假设您正在为银行构建数据仓库。请考虑存储在数据仓库中的数据是所有帐户的交易数据。问题是,谁可以查看交易数据。解决方案在于根据职能对数据进行分类。

User classification

下列方法可用于对用户分类 −

  1. 用户可以按照组织中的用户层次结构进行分类,即,用户可以按部门、科室、组等分类。

  2. 用户还可以根据其角色进行分类,其中根据角色将跨部门的人员归为一组。

Classification on basis of Department

让我们举一个数据仓库的示例,其中用户来自销售和营销部门。我们可以通过自上而下的公司视图进行安全管理,访问权限以不同部门为中心。但对不同级别的用户可能会有一些限制。此结构如下图所示。

user access hierarchy

但是,如果每个部门访问不同的数据,那么我们应该为每个部门单独设计安全访问权限。可以通过部门数据市实现此目的。由于这些数据市与数据仓库分离,因此我们可以在每个数据市上强制执行单独的安全限制。此方法如下图所示。

user restriction

Classification Based on Role

如果数据通常对所有部门可用,那么遵循角色访问层次结构十分有用。换句话说,如果数据通常由所有部门访问,那么按照用户的角色应用安全限制。角色访问层次结构如下图所示。

role access hierarchy

Audit Requirements

审计是安全性的子集,也是一项成本高昂的活动。审计可能会导致系统的大量开销。为了及时完成审计,我们需要更多的硬件,因此,建议在可能的情况下关闭审计。审计要求可分类如下 −

  1. Connections

  2. Disconnections

  3. Data access

  4. Data change

Note −对于上述每个类别,都需要审计成功、失败或两者。从安全性的角度考虑,审计失败非常重要。审计失败很重要,因为它们可以突出显示未经授权或欺诈性访问。

Network Requirements

网络安全与其他安全性一样重要。我们不能忽视网络安全要求。我们需要考虑以下问题 −

  1. 在将数据传输到数据仓库之前有必要加密数据吗?

  2. 网络数据传输是否有路由限制?

这些限制需要谨慎考虑。以下是需要记住的要点 −

  1. 加密和解密过程将增加开销。这需要更多的处理能力和处理时间。

  2. 如果系统已经是一个负载系统,则加密成本可能很高,因为加密是由源系统承担的。

Data Movement

在移动数据时存在潜在的安全隐患。假设我们需要传输一些受限数据作为需要加载的平面文件。将数据加载到数据仓库时,会产生以下问题 −

  1. 平面文件存储在哪里?

  2. 谁有权访问该磁盘空间?

如果我们讨论这些平面文件备份,将出现以下问题 -

  1. 你备份加密版本还是解密版本?

  2. 是否需要将这些备份做成存储单独的特殊磁带?

  3. 谁可以访问这些磁带?

数据移动的其他一些形式(如查询结果集)也需要考虑。创建临时表时提出的问题如下 -

  1. 临时表应该存放在哪里?

  2. 你如何让此类表可见?

我们应该避免意外违背安全限制。如果一个可以访问受限数据的用户可以生成可访问的临时表,数据将对未授权用户可见。通过为有权访问受限数据的用户提供一个单独的临时区域,我们可以解决这个问题。

Documentation

审计和安全要求需要得到妥善的记录。这将被视为证明的一部分。本文件可包含从下列信息收集的所有信息 -

  1. Data classification

  2. User classification

  3. Network requirements

  4. 数据移动和存储要求

  5. All auditable actions

Impact of Security on Design

安全性会影响应用程序代码和开发时间表。安全性影响以下领域 -

  1. Application development

  2. Database design

  3. Testing

Application Development

安全性会影响整体应用程序开发,并且也会影响数据仓库中加载管理器、仓库管理器和查询管理器等重要组件的设计。加载管理器可能需要检查代码以过滤记录并将其放在不同位置。也可能需要更多转换规则来隐藏某些数据。也可能需要额外的元数据来处理任何额外对象。

为了创建和维护额外的视图,仓库管理器可能需要额外的代码来实施安全性。可能必须将额外检查编码到数据仓库中,以防止数据仓库在不应该提供的位置移动数据时受到愚弄。查询管理器需要进行更改以处理任何访问限制。查询管理器需要了解所有额外视图和聚合。

Database design

数据库布局也会受到影响,因为在实施安全措施后,视图和表的数量会增加。增加安全性会增加数据库的大小,从而增加数据库设计和管理的复杂性。它还将增加备份管理和恢复计划的复杂性。

Testing

测试数据仓库是一个复杂且漫长的过程。向数据仓库中增加安全性也会影响测试时间复杂度。它在以下两个方面影响测试 -

  1. 这会增加集成和系统测试所需的时间。

  2. 增加了要测试的功能,这将增加测试套件的大小。