博客
关于我
Ranger之Hive的行列过滤设置(六)
阅读量:495 次
发布时间:2019-03-06

本文共 1704 字,大约阅读时间需要 5 分钟。

Hive 中的行级过滤与列屏蔽(基于 Apache Ranger 的策略)

Apache Ranger 是 Apache 开源项目中用于数据安全的重要工具之一。在 Hive 中,Ranger 提供了强大的行级过滤和列屏蔽功能,这些功能能够有效保护数据隐私并满足企业的安全需求。本文将详细介绍 Hive 中的行级过滤和列屏蔽的实现方法。


行级过滤

什么是行级过滤?

行级过滤是 Hive 中的一种安全机制,允许管理员为特定的 Hive 表设置行级访问策略。通过行级过滤,可以限制用户只查看特定的数据行,而不是整个表或视图。这种方式能够提升数据安全性,同时减轻 Table_RPCMs 的负载。

为什么要使用行级过滤?

  • 简化查询逻辑:Hive 将访问逻辑下移至底层,仅在查询执行时应用过滤,避免在 SQL 谓词中重复逻辑。
  • 提升查询性能:后台执行分段处理,无需显式在查询中添加过滤条件。
  • 提高可靠性:通过将安全逻辑下移到 Hive 层,减少了元数据服务的负载压力。
  • 行级过滤的典型应用场景

    • 医疗行业:医生仅能查看其指定患者的数据。
    • 金融行业:根据员工部门或角色限制数据访问,例如财务部门员工只能查看发票、付款和应计数据。
    • 多租户应用:为每个租户创建逻辑隔离,确保每个租户只能看到自己关联的数据行。

    行级过滤的步骤说明

  • 进入服务管理器:访问 Hive 服务,选择已有的 Hive 服务。
  • 启用行级过滤器:在服务管理界面选择行级过滤器选项卡,点击“添加新策略”。
  • 配置策略详情
    • 策略名称:输入一个唯一名称。
    • 策略类型:默认为“正常”或“覆盖”,可根据需要选择。
    • Hive 数据库和表:指定适用的数据库和表。
    • 审核日志:默认启用,可以根据需求关闭。
    • 描述:添加必要的说明信息。
    • 有效期:指定策略的生效时间段。
  • 选择访问组和用户:指定策略适用的组或用户,默认为“public”组。
  • 添加过滤条件:在策略中添加有效的 Hive WHERE 子句,支持多个条件并可调整顺序。
  • 保存策略:创建完成后保存策略,生效的时间段内限制访问。

  • 列屏蔽(基于标记的屏蔽)

    什么是列屏蔽?

    基于标记的列屏蔽是 Hive 中的一种安全机制,可匿名化特定 Hive 列的数据。通过屏蔽,可以隐藏敏感信息或限制用户的数据访问。屏蔽类型包括:

    • 部分显示:显示前四个或后四个字符。
    • 哈希:将单元格内容替换为哈希值。
    • Nullify:将单元格内容替换为空值。
    • 日期:只显示日期年份。
    • 自定义:定义自定义屏蔽逻辑,可使用 Hive UDF。

    列屏蔽的应用条件

    • 标记类型:支持基于标记的屏蔽,只能应用到明确指定的列。
    • 多个标记:如果多个屏蔽策略同时应用于相同列,按字典序选择最小的策略执行。
    • 审计日志:默认生成审计日志记录,可以关闭审计功能。
    • 屏蔽顺序:屏蔽策略按定义顺序评估,优先执行顶部策略。

    列屏蔽策略的设置步骤

  • 进入标记管理界面:访问 Apache Ranger 的服务,选择“基于标记的策略”。
  • 启用新屏蔽策略:点击“屏蔽”选项卡,选择“添加新策略”。
  • 配置策略详情
    • 策略类型:默认设置为“屏蔽”。
    • 策略名称:输入适当名称,不能重复。
    • 标记名称:选择适用的标记,例如“MASK”。
    • 数据库和表:指定适用的数据库和表。
    • 审核日志:默认启用,可以根据需求关闭。
    • 描述:添加说明信息。
    • 有效期:定义策略生效时间。
    • 屏蔽条件:添加条件,可使用布尔表达式定义允许或拒绝情况。
  • 选择用户和组:指定适用的用户和组,默认为“public”组。
  • 添加屏蔽类型:选择适用的屏蔽类型,输入自定义值或表达式。
  • 保存策略:创建完成后保存策略,生效时间内实施屏蔽。

  • 行级过滤和列屏蔽的综合应用

    • 行级过滤:用于限制用户的数据访问范围,适用于部门间数据共享或用户权限管理。
    • 列屏蔽:用于保护敏感信息,避免数据泄露。例如,可以将 Salary 列替换为空值或显示前四个数字。
    • 结合使用:在需要时同时启用行级过滤和列屏蔽,以实现更加全面的数据安全策略。

    通过合理应用 Apache Ranger 的行级过滤和列屏蔽功能,可以显著提升 Hive 数据安全性,同时简化数据访问管理。

    转载地址:http://lpqdz.baihongyu.com/

    你可能感兴趣的文章
    Mysql 常见ALTER TABLE操作
    查看>>
    mysql 往字段后面加字符串
    查看>>
    mysql 快速自增假数据, 新增假数据,mysql自增假数据
    查看>>
    Mysql 报错 Field 'id' doesn't have a default value
    查看>>
    MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
    查看>>
    mysql 排序id_mysql如何按特定id排序
    查看>>
    Mysql 提示:Communication link failure
    查看>>
    mysql 插入是否成功_PDO mysql:如何知道插入是否成功
    查看>>
    Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
    查看>>
    mysql 数据库备份及ibdata1的瘦身
    查看>>
    MySQL 数据库备份种类以及常用备份工具汇总
    查看>>
    mysql 数据库存储引擎怎么选择?快来看看性能测试吧
    查看>>
    MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
    查看>>
    MySQL 数据库的高可用性分析
    查看>>
    Mysql 数据库重置ID排序
    查看>>
    Mysql 数据类型一日期
    查看>>
    MySQL 数据类型和属性
    查看>>
    mysql 敲错命令 想取消怎么办?
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>