`
yugouai
  • 浏览: 498462 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hive授权(Security配置)

阅读更多

 

摘:https://cwiki.apache.org/Hive/languagemanual-auth.html

       https://cwiki.apache.org/Hive/authdev.html

       http://grokbase.com/t/hive/user/11aksphhas/authorization-and-remote-connection-on-cdh3u1

 

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

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

 

一、HIVE新建文件权限

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

<property>
  <name>hive.files.umask.value</name>
  <value>0002</value>
  <description>The dfs.umask value for the hive created folders</description>
</property>

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

 

二、HIVE授权存储检查

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

<property>
  <name>hive.metastore.authorization.storage.checks</name>
  <value>true</value>
  <description>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).</description>
</property>

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

 

三、HIVE身份验证

 

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

<property>
  <name>hive.security.authorization.enabled</name> 
  <value>true</value>
  <description>Enable or disable the hive client authorization</description>
</property>

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

<property>
  <name>hive.security.authorization.createtable.owner.grants</name>
  <value>ALL</value>
  <description>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</description>
</property>

 这个配置默认是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

 

<property>
  <name>hive.security.authorization.createtable.owner.grants</name>
  <value>select,drop</value>
</property>

 

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

<property>
  <name>hive.security.authorization.createtable.user.grants</name>
  <value>irwin,hadoop:select;tom:create</value>
</property>

 当表建立的时候,管理员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

 为表加载本地数据的权限

分享到:
评论

相关推荐

    07--Hive权限管理1

    本篇文章将详细讲解Hive的三种授权模型:基于存储的授权、基于SQL标准的授权以及默认的Hive授权,并探讨它们的特点、限制以及配置方法。 1. 基于存储的授权(Storage Based Authorization in the Metastore Server...

    php链接HIVE的例子代码

    2. **配置SASL安全认证**:文件名"PHP-Thrift-Sasl-Hive2-master"暗示了使用SASL(Simple Authentication and Security Layer)进行安全认证。SASL是Thrift支持的一种身份验证机制,用于保护Hive Server2免受未经...

    hadoop security

    在部署Hadoop Security时,通过Hive Server 2配置Kerberos认证和impersonation机制是关键步骤。这不仅可以保护Hadoop集群免受未授权访问,还能确保数据操作的透明性和审计性。同时,对Hive Server 2的监听端口和主机...

    ranger配置文件的

    Ranger 的配置文件包括 ranger-admin-site.xml、ranger-security.xml 等,用于配置 Ranger 的安全策略和审计日志等信息。 9. Ranger 的安全机制 Ranger 的安全机制包括身份验证、授权、审计日志等,能够对 Hadoop ...

    hbase-0.94.16-security.tar.gz

    此外,HBase与Hadoop其他组件如Hive、Pig等集成良好,可以在大数据分析流程中发挥重要作用。 总之,HBase-0.94.16-security是一个强大的分布式数据库,专为处理海量数据和实时查询而设计。它的安全特性增强了数据...

    presto-kerberos

    在这种配置中,Presto使用Kerberos来提供安全性高的服务,确保只有授权的用户和进程能够使用Presto服务。 从描述中我们知道,需要掌握的内容包括Presto的Kerberos配置参数设置。Presto服务器的配置文件通常位于conf...

    kerberos安全认证demo

    在这个"Kerberos安全认证demo"中,我们可以看到多个组件,如Spark、Oozie、MapReduce(MR)、Kafka、Hive、HDFS和HBase,都已经被配置以支持Kerberos安全认证。下面将详细介绍这些组件如何与Kerberos集成以及它们在...

    CDH安全技术方案.docx

    - **配置代理证书验证**:确保代理节点之间交互的安全,防止未授权的访问。 2. **Kerberos认证**: - **KDC服务的安装与配置**:Kerberos是一种基于票证的身份验证协议,Kerberos分布式认证服务(KDC)是其核心...

    Hive-MVP:蜂巢MVP

    Spring Security可以集成到Spring Boot中,为系统提供安全控制,如身份验证、授权和会话管理。同时,WebSocket或者Socket.IO可能被用作实时通信工具,实现医生间的即时消息传递。 五、数据库设计 在Hive-MVP中,...

    kerberos安全认证

    通过学习和理解Kerberos的工作原理和配置,我们可以更好地保护数据和资源,防止未经授权的访问。这个压缩包文件中的内容可能包含了这些组件的Kerberos配置示例和开发文档,对于理解和实施Kerberos安全认证非常有价值...

    获取系统用户hash

    regsave "HKEY_LOCAL_MACHINE\SECURITY" "security.hive" ``` 这些命令会将`SAM`、`SYSTEM` 和 `SECURITY` 子键分别备份到对应的`.hive`文件中。需要注意的是,由于这些操作涉及敏感信息,通常需要管理员权限才能...

    hadoop电子书汇总

    7. **Practical Hadoop Security**:随着大数据的安全问题日益凸显,这本书专门讨论了Hadoop环境下的安全实践,包括身份验证、授权、加密和审计等,帮助读者建立和维护安全的大数据环境。 这些书籍共同构成了一个...

    flink写入带kerberos认证的kudu connector

    当Flink需要与Kudu交互时,Kerberos认证机制的引入是为了增强系统的安全性,防止未授权的访问。本文将详细介绍如何在Flink中配置和使用带Kerberos认证的Kudu Connector。 ### 1. Kerberos认证简介 Kerberos 是一种...

    hadoop安全

    7. **配置Hadoop安全**:在Hadoop配置文件中启用Kerberos,例如在`core-site.xml`中设置`hadoop.security.authentication`为`kerberos`,并指定Kerberos票证验证器。 8. **测试和调试**:完成配置后,进行测试以确保...

    soapui知识手册

    - **Security Testing**: 安全性测试则是检查Web服务是否存在安全漏洞等问题。 #### 四、详细应用场景 ##### 4.1 导入项目 在SoapUI中,可以通过导入现有的项目文件来继续之前的测试工作。这对于团队协作特别有用...

    CentOS7 简易版离线安装CDH14.docx

    CDH 包括了 Hadoop、Hive、Pig、Sqoop 等组件,提供了一个完整的大数据解决方案。 知识点 2:CentOS 7 简介 CentOS 7 是一个基于 Linux 的操作系统,由 CentOS 项目开发和维护。CentOS 7 是一个稳定、高效、安全的...

    A cloud platform basing on hadoop 一个基于hadoop的云平台.zip

    Hadoop提供身份验证、授权和审计机制,如Kerberos、Hadoop Security、Hadoop YARN安全等,以防止未授权访问。 三、Hadoop与人工智能的融合 1. 数据预处理:在AI模型训练前,Hadoop可以处理大规模的原始数据,进行...

    Cloudera产品路线介绍.pdf

    首先,普世安全(Universal Security)是Cloudera产品路线图的一个重要组成部分。RecordService被提到作为实现这一目标的关键技术,它旨在提供全面的安全和治理解决方案。RecordService通过认证、网络隔离、权限授权...

    Hadoop与大数据技术大会2012PPT

    接着是"**Hadoop Security Overview.pdf**",这通常会涉及Hadoop的安全管理,包括身份验证、授权和审计,这对于在企业环境中部署Hadoop至关重要。Hadoop的安全机制如Kerberos、HDFS加密和访问控制列表(ACLs)可能...

    archive_ Presto大数据查询引擎 v0.28.0 [江西新余电信].zip.zip

    5. ** Security**:配置身份验证、授权和加密,确保数据安全。 总的来说,"archive_ Presto大数据查询引擎 v0.28.0 [江西新余电信].zip.zip"这个压缩包是了解和使用Presto的重要资源,无论是开发者还是数据分析师,...

Global site tag (gtag.js) - Google Analytics