摘: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 |
为表加载本地数据的权限 |
相关推荐
本篇文章将详细讲解Hive的三种授权模型:基于存储的授权、基于SQL标准的授权以及默认的Hive授权,并探讨它们的特点、限制以及配置方法。 1. 基于存储的授权(Storage Based Authorization in the Metastore Server...
2. **配置SASL安全认证**:文件名"PHP-Thrift-Sasl-Hive2-master"暗示了使用SASL(Simple Authentication and Security Layer)进行安全认证。SASL是Thrift支持的一种身份验证机制,用于保护Hive Server2免受未经...
在部署Hadoop Security时,通过Hive Server 2配置Kerberos认证和impersonation机制是关键步骤。这不仅可以保护Hadoop集群免受未授权访问,还能确保数据操作的透明性和审计性。同时,对Hive Server 2的监听端口和主机...
Ranger 的配置文件包括 ranger-admin-site.xml、ranger-security.xml 等,用于配置 Ranger 的安全策略和审计日志等信息。 9. Ranger 的安全机制 Ranger 的安全机制包括身份验证、授权、审计日志等,能够对 Hadoop ...
此外,HBase与Hadoop其他组件如Hive、Pig等集成良好,可以在大数据分析流程中发挥重要作用。 总之,HBase-0.94.16-security是一个强大的分布式数据库,专为处理海量数据和实时查询而设计。它的安全特性增强了数据...
在这种配置中,Presto使用Kerberos来提供安全性高的服务,确保只有授权的用户和进程能够使用Presto服务。 从描述中我们知道,需要掌握的内容包括Presto的Kerberos配置参数设置。Presto服务器的配置文件通常位于conf...
在这个"Kerberos安全认证demo"中,我们可以看到多个组件,如Spark、Oozie、MapReduce(MR)、Kafka、Hive、HDFS和HBase,都已经被配置以支持Kerberos安全认证。下面将详细介绍这些组件如何与Kerberos集成以及它们在...
- **配置代理证书验证**:确保代理节点之间交互的安全,防止未授权的访问。 2. **Kerberos认证**: - **KDC服务的安装与配置**:Kerberos是一种基于票证的身份验证协议,Kerberos分布式认证服务(KDC)是其核心...
Spring Security可以集成到Spring Boot中,为系统提供安全控制,如身份验证、授权和会话管理。同时,WebSocket或者Socket.IO可能被用作实时通信工具,实现医生间的即时消息传递。 五、数据库设计 在Hive-MVP中,...
通过学习和理解Kerberos的工作原理和配置,我们可以更好地保护数据和资源,防止未经授权的访问。这个压缩包文件中的内容可能包含了这些组件的Kerberos配置示例和开发文档,对于理解和实施Kerberos安全认证非常有价值...
regsave "HKEY_LOCAL_MACHINE\SECURITY" "security.hive" ``` 这些命令会将`SAM`、`SYSTEM` 和 `SECURITY` 子键分别备份到对应的`.hive`文件中。需要注意的是,由于这些操作涉及敏感信息,通常需要管理员权限才能...
7. **Practical Hadoop Security**:随着大数据的安全问题日益凸显,这本书专门讨论了Hadoop环境下的安全实践,包括身份验证、授权、加密和审计等,帮助读者建立和维护安全的大数据环境。 这些书籍共同构成了一个...
当Flink需要与Kudu交互时,Kerberos认证机制的引入是为了增强系统的安全性,防止未授权的访问。本文将详细介绍如何在Flink中配置和使用带Kerberos认证的Kudu Connector。 ### 1. Kerberos认证简介 Kerberos 是一种...
7. **配置Hadoop安全**:在Hadoop配置文件中启用Kerberos,例如在`core-site.xml`中设置`hadoop.security.authentication`为`kerberos`,并指定Kerberos票证验证器。 8. **测试和调试**:完成配置后,进行测试以确保...
- **Security Testing**: 安全性测试则是检查Web服务是否存在安全漏洞等问题。 #### 四、详细应用场景 ##### 4.1 导入项目 在SoapUI中,可以通过导入现有的项目文件来继续之前的测试工作。这对于团队协作特别有用...
CDH 包括了 Hadoop、Hive、Pig、Sqoop 等组件,提供了一个完整的大数据解决方案。 知识点 2:CentOS 7 简介 CentOS 7 是一个基于 Linux 的操作系统,由 CentOS 项目开发和维护。CentOS 7 是一个稳定、高效、安全的...
Hadoop提供身份验证、授权和审计机制,如Kerberos、Hadoop Security、Hadoop YARN安全等,以防止未授权访问。 三、Hadoop与人工智能的融合 1. 数据预处理:在AI模型训练前,Hadoop可以处理大规模的原始数据,进行...
首先,普世安全(Universal Security)是Cloudera产品路线图的一个重要组成部分。RecordService被提到作为实现这一目标的关键技术,它旨在提供全面的安全和治理解决方案。RecordService通过认证、网络隔离、权限授权...
接着是"**Hadoop Security Overview.pdf**",这通常会涉及Hadoop的安全管理,包括身份验证、授权和审计,这对于在企业环境中部署Hadoop至关重要。Hadoop的安全机制如Kerberos、HDFS加密和访问控制列表(ACLs)可能...
5. ** Security**:配置身份验证、授权和加密,确保数据安全。 总的来说,"archive_ Presto大数据查询引擎 v0.28.0 [江西新余电信].zip.zip"这个压缩包是了解和使用Presto的重要资源,无论是开发者还是数据分析师,...