博客
关于我
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 将null转代为0
    查看>>
    mysql 常用
    查看>>
    MySQL 常用列类型
    查看>>
    mysql 常用命令
    查看>>
    Mysql 常见ALTER TABLE操作
    查看>>
    MySQL 常见的 9 种优化方法
    查看>>
    MySQL 常见的开放性问题
    查看>>
    Mysql 常见错误
    查看>>
    mysql 常见问题
    查看>>
    MYSQL 幻读(Phantom Problem)不可重复读
    查看>>
    mysql 往字段后面加字符串
    查看>>
    mysql 快照读 幻读_innodb当前读 与 快照读 and rr级别是否真正避免了幻读
    查看>>
    MySQL 快速创建千万级测试数据
    查看>>
    mysql 快速自增假数据, 新增假数据,mysql自增假数据
    查看>>
    MySql 手动执行主从备份
    查看>>
    Mysql 批量修改四种方式效率对比(一)
    查看>>
    Mysql 报错 Field 'id' doesn't have a default value
    查看>>
    MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
    查看>>
    Mysql 拼接多个字段作为查询条件查询方法
    查看>>
    mysql 排序id_mysql如何按特定id排序
    查看>>