权限策略配置

最近更新时间: 2026-03-13 09:03:00

配置步骤

  1. 安装 Ranger Plugin:

    1. 下载并安装 Ranger Hive 插件。
  2. 配置 Hive:

    1. 修改 hive-site.xml 文件,添加以下配置:
    <property>
      <name>hive.security.authorization.manager</name>
      <value>org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory</value>
    </property>
    <property>
      <name>hive.security.authenticator.manager</name>
      <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
    </property>
    
  3. 配置 Ranger:

    1. 使用Ranger管理员用户rangeradmin登录Ranger管理页面。
    2. 在首页中单击“HADOOP SQL”区域的组件插件名称,例如“hive”。
    3. 在“Access”页签单击“Add New Policy”,添加Hive权限控制策略。
    4. 根据业务需求配置相关参数。
      Hive权限参数如下:
      参数名称描述
      Policy Name策略名称,可自定义,不能与本服务内其他策略名称重复。
      Policy ConditionsIP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:172.138.1.10,172.138.1.20或者172.138.1.*。
      Policy Label为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。
      database将适用该策略的列Hive数据库名称。
      “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。
      table将适用该策略的Hive表名称。
      如果需要添加基于UDF的策略,可切换为UDF,然后输入UDF的名称。
      “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。
      Hive Column将适用该策略的列名,填写*时表示所有列。
      “Include”策略适用于当前输入的对象,“Exclude”表示策略适用于除去当前输入内容之外的其他对象。
      Description策略描述信息。
      Audit Logging是否审计此策略。
      Allow Conditions策略允许条件,配置本策略内允许的权限及例外。
      在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的Role、用户组或用户,单击“Add Conditions”,添加策略适用的IP地址范围,然后再单击“Add Permissions”,添加对应权限。
      ● select:查询权限
      ● update:更新权限
      ● Create:创建权限
      ● Drop:drop操作权限
      ● Alter:alter操作权限
      ● Index:索引操作权限
      ● All:所有执行权限
      ● Read:可读权限
      ● Write:可写权限
      ● Temporary UDF Admin:临时UDF管理权限
      ● Select/Deselect All:全选/取消全选
      如需添加多条权限控制规则,可单击按钮添加。
      如需当前条件中的用户或用户组管理本条策略,可勾选“Delegate Admin”,这些用户将成为受委托的管理员。被委托的管理员可以更新、删除本策略,它还可以基于原始策略创建子策略。
      Deny Conditions策略拒绝条件,配置本策略内拒绝的权限及例外,配置方法与“Allow Conditions”相同。
      设置权限场景如下:
任务场景角色授权操作
role admin操作
  1. 在首页中单击“Settings”,选择“Roles”。
  2. 单击Role Name为admin的角色,在“Users”区域,单击“Select User”,选择对应用户名。
  3. 单击Add Users按钮,在对应用户名所在行勾选“Is Role Admin”,单击“Save”保存配置。

<strong>说明:</strong>
Ranger页面的“Settings”选项只有rangeradmin用户有权限访问。用户绑定Hive管理员角色后,在每个维护操作会话中,还需要执行以下操作:
  1. 以客户端安装用户,登录安装Hive客户端的节点。
  2. 执行以下命令配置环境变量。

例如,Hive客户端安装目录为“/opt/hiveclient”,执行source/opt/hiveclient/bigdata_env
  1. 执行以下命令认证用户。

kinit Hive业务用户
  1. 执行以下命令登录客户端工具。

beeline
  1. 执行以下命令更新用户的管理员权限。

set role admin;
创建库表操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库(如果是创建表则在“table”右侧填写或选择对应的表),在“column”右侧填写或选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“Create”。
删除库表操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库(如果是删除表则在“table”右侧填写或选择对应的表),在“column”右侧填写并选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“Drop”。
查询操作(select、desc、show)
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库(如果是表则在“table”右侧填写或选择对应的表),在“column”右侧填写并选择对应的列(*代表所有列)。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“select”。
Alter操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写并选择对应的数据库(如果是表则在“table”右侧填写或选择对应的表),在“column”右侧填写或选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“Alter”。
LOAD操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库,在“table”右侧填写或选择对应的表,在“column”右侧填写并选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“update”。
INSERT、DELETE操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库,在“table”右侧填写或选择对应的表,在“column”右侧填写并选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“update”。
  5. 用户还需要具有Yarn任务队列的“submit”权限。
Import/Export操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库,在“table”右侧填写或选择对应的表,在“column”右侧填写并选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“select”。
Repl Dump/Load操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库,在“table”右侧填写或选择“*”,在“column”右侧填写并选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“ReplAdmin”。
GRANT、REVOKE操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库,在“table”右侧填写或选择对应的表,在“column”右侧填写并选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 勾选“Delegate Admin”。
ADD JAR操作
  1. 在“Policy Name”填写策略名称。
  2. 单击“database”并在下拉菜单中选择“global”。在“global”右侧填写或选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,勾选“Temporary UDF Admin”。
UDF操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库,“UDF”右侧填写对应的UDF函数名。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,根据需求,给用户勾选相应权限(UDF支持Create,SELECT, Drop)。
VIEW操作
  1. 在“Policy Name”填写策略名称。
  2. “database”右侧填写或选择对应的数据库,在“table”右侧填写或选择对应的VIEW名称,在“column”右侧填写并选择“*”。
  3. 在“Allow Conditions”区域,单击“Select User”下选择框选择用户。
  4. 单击“Add Permissions”,参照表格上述相关操作,根据需求,给用户勾选相应权限。
dfs命令操作执行set role admin操作才可使用。
其他用户库表操作
  1. 参照表格上述相关操作添加对应权限。
  2. 给用户添加其他用户库表的HDFS路径的读、写、执行权限。
  1. 单击“Add”,在策略列表可查看策略的基本信息。等待策略生效后,验证相关权限是否正常。如需禁用某条策略,可单击按钮编辑策略,设置策略开关为“Disabled”。
    如果不再使用策略,可单击按钮删除策略。
  2. 重启 Hive:
    1. 重启 Hive 服务以应用配置。

Hive数据脱敏

Ranger支持对Hive数据进行脱敏处理(Data Masking),可对用户执行的SELECT操作的返回结果进行处理,以屏蔽敏感信息。

  1. 登录Ranger WebUI界面,在首页中单击“HADOOP SQL”区域的“Hive”

  2. 在“Masking”页签单击“Add New Policy”,添加Hive权限控制策略。

  3. 根据业务需求配置相关参数。
    Hive数据脱敏参数:

    参数名称描述
    Policy Name策略名称,可自定义,不能与本服务内其他策略名称重复。
    Policy ConditionsIP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:172.138.1.10,172.138.1.20或者172.138.1.*。
    Policy Label为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。
    Hive Database配置当前策略适用的Hive中数据库名称,支持设置多个数据库名,并且填写支持“*”通配符,例如:aa、a*、*b、a*b或者*。
    Hive Table配置当前策略适用的Hive中的表名称,支持设置多个表名,并且填写支持“*”通配符,例如:aa、a*、*b、a*b或者*。
    Hive Column可添加列名,支持设置多个列名,并且填写支持“*”通配符,例如:aa、a*、*b、a*b或者*。
    Description策略描述信息。
    Audit Logging是否审计此策略。
    Mask Conditions在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的对象,单击“Add Conditions”,添加策略适用的IP地址范围,然后再单击“Add Permissions”,勾选“SELECT”权限。
    单击“Select Masking Option”,选择数据脱敏时的处理策略:
    ● Redact:用x屏蔽所有字母字符,用0屏蔽所有数字字符。
    ● Partial mask: show last 4:只显示最后的4个字符,其他用x代替。
    ● Partial mask: show first 4:只显示开始的4个字符,其他用x代替。
    ● Hash:用值的哈希值替换原值,采用的是hive的内置mask_hash函数,只对string、char、varchar类型的字段生效,其他类型的字段会返回NULL值。
    ● Nullify:用NULL值替换原值。
    ● Unmasked(retain original value):原样显示。
    ● Date: show only year:仅显示日期字符串的年份部分,并将月份和日期默认为01/01。
    ● Custom:可使用任何有效返回与被屏蔽的列中的数据类型相同的数据类型来自定义策略。
    如需添加多列的脱敏策略,可单击按钮添加。
  4. 单击“Add”,在策略列表可查看策略的基本信息。

  5. 用户通过Hive客户端对配置了数据脱敏策略的表执行SELECT操作,系统将对数据进行处理后进行展示。

    说明:

    处理数据需要用户同时具有向Yarn队列提交任务的权限。

Hive行级别数据过滤

Ranger支持用户对Hive数据表执行SELECT操作时进行行级别的数据过滤。

  1. 登录Ranger WebUI界面,在首页中单击“HADOOP SQL”区域的“Hive”。

  2. 在“Row Level Filter”页签单击

    “Add New Policy”,添加行数据过滤策略。

  3. 根据业务需求配置相关参数。
    Hive行数据过滤参数:

    参数名称描述
    Policy Name策略名称,可自定义,不能与本服务内其他策略名称重复。
    Policy ConditionsIP过滤策略,可自定义,配置当前策略适用的主机节点,可填写一个或多个IP或IP段,并且IP填写支持“*”通配符,例如:172.138.1.10,172.138.1.20或者172.138.1.*。
    Policy Label为当前策略指定一个标签,可以根据这些标签搜索报告和筛选策略。
    Hive Database配置当前策略适用的Hive中数据库名称。
    Hive Table配置当前策略适用的Hive中的表名称。
    Description策略描述信息。
    Audit Logging是否审计此策略。
    Row Filter Conditions在“Select Role”、“Select Group”、“Select User”列选择已创建好的需要授予权限的对象,单击“Add Conditions”,添加策略适用的IP地址范围,然后再单击“Add Permissions”,勾选“SELECT”权限。
    单击“Row Level Filter”,填写数据过滤规则。
    例如过滤表A中“name”列“zhangsan”行的数据,过滤规则为:name <> 'zhangsan'。更多信息可参考Ranger官方文档。
    如需添加更多规则,可单击按钮添加。
  4. 单击“Add”,在策略列表可查看策略的基本信息。

  5. 用户通过Hive客户端对配置了数据脱敏策略的表执行SELECT操作,系统将对数据进行处理后进行展示。

    说明:

    处理数据需要用户同时具有向Yarn队列提交任务的权限。