hive 创建访问用户_Hive授权(Security配置)

本文详细介绍了Hive的授权管理,包括新建文件权限、存储检查、身份验证的开启和配置,以及用户、组、角色的权限分配。通过案例展示了如何为不同主体授权,并解释了分区表级别的授权和自动授权的设定。最后提到了常用的授权关键字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HIVE授权管理,类似于操作系统权限可以授予给不同的主题,如用户(USER),组(GROUP),角色(ROLES),Hive还是支持相当多的权限管理功能,满足一般数据仓库的使用,同时HIVE能支持自定义权限。

HIVE授权并不是完全安全,在其目前的形式来看,授权方案的目的是主要是为了防止用户不小心好做了不合法的操作,但不承诺防止用户恶意破坏。

一、HIVE新建文件权限

Hive由一个默认的设置来配置新建文件的默认权限。

hive.files.umask.value

0002

The dfs.umask value for the hive created folders

创建文件授权掩码为0002,即664权限,具体要看hadoop与hive用户配置。

二、HIVE授权存储检查

当hive.metastore.authorization.storage.checks属性被设置成true时,Hive将会阻止没有权限的用户进行表删除操作。不过这个配置的默认值是false,应该设置成true。

hive.metastore.authorization.storage.checks

true

Should the metastore do authorization checks against

the underlying storage for operations like drop-partition (disallow

the drop-partition if the user in question doesn't have permissions

to delete the corresponding directory on the storage).

同时,Hive会尽可能地将hive.metastore.execute.setugi设置成true。在不安全的模式,将这个属性设置为true将导致metastore执行DFS操作定义用户和组权限。

三、HIVE身份验证

1.开启Hive的身份认证功能,默认是false

hive.security.authorization.enabled

true

Enable or disable the hive client authorization

2.表创建者用于的权限配置项

hive.security.authorization.createtable.owner.grants

ALL

The privileges automatically granted to the owner whenever

a table gets created.An example like "select,drop" will grant select

and drop privilege to the owner of the table

这个配置默认是NULL,建议将其设置成ALL,让用户能够访问自己创建的表。

四、案例说明

1.在命令行环境开启用户认证

hive> set hive.security.authorization.enabled=true;

hive> CREATE TABLE auth_test (key int, value string);

Authorization failed:No privilege 'Create' found for outputs { database:default}.

Use show grant to get more details.

提示建表需要权限了。

权限可以授予给不同的主题,如用户(USER),组(GROUP),角色(ROLES)

现在通过授权方式,将权限授予给当前用户:

hive> set system:user.name;

system:user.name=hadoop

hive> GRANT CREATE ON DATABASE default TO USER hadoop;

hive> CREATE TABLE auth_test (key INT, value STRING);

通过SHOW GRANT命令确认我们拥有的权限:

hive> SHOW GRANT USER hadoop ON DATABASE default;

database default

principalName hadoop

principalType USER

privilege Create

grantTime Wed Mar 08 19:18:10 EDT 2013

grantor hadoop

当Hive里面用于N多用户和N多张表的时候,管理员给每个用户授权每张表会让他崩溃的。

所以,这个时候就可以进行组(GROUP)授权。

Hive里的用户组的定义等价于POSIX里面的用户组。

hive> CREATE TABLE auth_test_group(a int,b int);

hive> SELECT * FROM auth_test_group;

Authorization failed:No privilege 'Select' found for inputs

{ database:default, table:auth_test_group, columnName:a}.

Use show grant to get more details.

hive> GRANT SELECT on table auth_test_group to group hadoop;

hive> SELECT * FROM auth_test_group;

OK

Time taken: 0.119 seconds

当给用户组授权变得不够灵活的时候,角色(ROLES)就派上用途了。

用户可以被放在某个角色之中,然后角色可以被授权。

角色不同于用户组,是由Hadoop控制的,它是由Hive内部进行管理的。

hive> CREATE TABLE auth_test_role (a int , b int);

hive> SELECT * FROM auth_test_role;

Authorization failed:No privilege 'Select' found for inputs

{ database:default, table:auth_test_role, columnName:a}.

Use show grant to get more details.

hive> CREATE ROLE users_who_can_select_auth_test_role;

hive> GRANT ROLE users_who_can_select_auth_test_role TO USER hadoop;

hive> GRANT SELECT ON TABLE auth_test_role

> TO ROLE users_who_can_select_auth_test_role;

hive> SELECT * FROM auth_test_role;

OK

Time taken: 0.103 seconds

五、分区表级别的授权

默认情况下,分区表的授权将会跟随表的授权,也可以给每一个分区建立一个授权机制,只需要设置表的属性PARTITION_LEVEL_PRIVILEGE设置成TRUE:

hive> ALTER TABLE auth_part

> SET TBLPROPERTIES ("PARTITION_LEVEL_PRIVILEGE"="TRUE");

Authorization failed:No privilege 'Alter' found for inputs

{database:default, table:auth_part}.

Use show grant to get more details.

六、自动授权

属性hive.security.authorization.createtable.owner.grants决定了

建表者对表拥有的权限,一版情况下,有select和drop

hive.security.authorization.createtable.owner.grants

select,drop

类似的,特定的用户可以被在表创建的时候自动授予其权限。

hive.security.authorization.createtable.user.grants

irwin,hadoop:select;tom:create

当表建立的时候,管理员irwin和用户hadoop授予读所有表的权限。而tom只能创建表。

同样的配置也可以作用于组授权和角色授权

hive.security.authorization.createtable.group.grants

hive.security.authorization.createtable.role.grants

七、删除授权

--回收用户hadoop的create授权

revoke create on database default from user hadoop;

--回收组hadoop的select授权

revoke select on database default from group hadoop;

附录:常用的授权关键字

ALTER

更改表结构,创建分区

CREATE

创建表

DROP

删除表,或分区

INDEX

创建和删除索引

LOCK

锁定表,保证并发

SELECT

查询表权限

SHOW_DATABASE

查看数据库权限

UPDATE

为表加载本地数据的权限

<think>好的,用户想知道如何在Ambari中配置Hive的安全范围(Security range)。首先,我需要回忆一下之前提供的引用内容,特别是引用[2]和引用[4],因为这些涉及到Hive配置和可能的错误。 根据引用[2],配置Ranger Hive服务时,可以通过修改自定义属性来使用Hive metastore直接连接,这可能与安全设置相关。步骤包括在Ambari的Hive配置中添加特定的属性,并重启组件。用户提到的Security range可能是指访问控制或权限范围,需要结合Ranger来管理。另外,引用[4]提到的错误提示说明某些参数不能在运行时修改,这提示在配置时需要注意参数是否允许动态调整。 接下来,我需要整理配置步骤。首先,用户需要通过Ambari界面进入Hive服务的配置部分,找到高级设置或自定义属性。然后添加或修改与Ranger相关的属性,比如启用metastore查找,指定hive-site.xml路径。保存配置后,需要重启相关服务,比如Hive和Ranger插件,确保更改生效。同时,可能需要测试连接,创建新的Hive服务定义,并检查是否有错误,如引用[4]中的问题。 还需要考虑用户可能的后续问题,比如验证配置是否成功、如何处理常见错误,或者如何集成其他安全措施。例如,引用[3]提到了使用MySQL JDBC驱动,如果涉及数据库连接,可能需要检查JDBC配置是否正确。 最后,生成相关问题时要围绕配置步骤的延伸,比如其他安全组件配置、错误排查、集成方法等,帮助用户进一步了解相关主题。</think>### 如何在 Ambari 中配置 Hive 的安全范围(Security range) #### 配置步骤 1. **进入 Ambari 的 Hive 服务配置界面** - 登录 Ambari Web 界面,选择 **Hive** 服务,进入 **Configs** 标签页。 2. **修改 Ranger Hive 插件配置** - 在 **Advanced** 分类下,定位到 **Custom ranger-hive-plugin-properties**(或类似的自定义配置项)[^2]。 - 添加以下属性以启用 Hive metastore 直接连接和资源范围控制: ```properties ranger.service.config.param.enable.hive.metastore.lookup=true ranger.service.config.param.hive.site.file.path=/etc/hive/conf/hive-site.xml ``` 3. **保存并重启服务** - 点击 **Save** 保存配置,根据提示重启 Hive、Ranger 插件及相关组件(如 HiveServer2)。 4. **验证安全范围配置** - 在 Ranger Admin 界面中新建或编辑 Hive 服务定义,将 JDBC URL 设置为 `none`,并运行 **Test Connection** 验证配置是否生效。 - 注意:若遇到参数无法动态修改的错误(如引用[4]),需检查配置项是否属于 Ambari 允许的动态更新范围。 #### 关键注意事项 - **动态参数限制**:部分参数(如引用[4]提到的 `hive.security.authorization.sqlstd.confwhitelist`)需通过静态配置文件(如 `hive-site.xml`)修改,而非 Ambari 动态更新。 - **权限同步**:若使用 Ranger 管理权限,需确保 Hive 元数据与 Ranger 策略同步,可通过 `ranger-hive-plugin` 日志排查问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值