您现在的位置是:首页 >技术杂谈 >【Hive实战】 Hive的权限模型网站首页技术杂谈
【Hive实战】 Hive的权限模型
Hive的权限模型
总览
什么是Hive授权
hive授权指的是用户是否有权限执行某个操作,非验证用户身份(如验证用户名和密码)。像Hive command line这样的工具的强认证是通过使用Kerberos提供的。对于 HiveServer2的用户,还有一些额外的认证选项。
Hive的授权场景
-
Hive作为一个表存储层。这是Hive的HCatalogAPI用户的使用情况,如Apache Pig、MapReduce和一些大规模并行处理数据库(Cloudera Impala、Facebook Presto、Spark SQL等)。在这种情况下,Hive为存储(通常是HDFS)上的文件提供了一个表的抽象和元数据。这些用户可以直接访问HDFS和元存储服务器(为元数据访问提供API)。HDFS的访问是通过使用HDFS权限来授权的。元数据访问需要使用Hive配置进行授权。
-
Hive作为一个SQL查询引擎。这是Hive最常见的使用情况之一。这是SQL用户和BI工具的 “Hive视图”。这个用例有以下两个子类别:
Hive的授权模式
- 基于元数据存储的授权
- 基于sql标准的授权
- 支持hive的权限管理插件,如ranger
- 传统模式(类似基于sql标准的授权)
使用建议
- 传统模式不建议使用
- 控制粒度在数据库、表、分区级别的可以采用基于元数据存储的授权模式
- 控制粒度比较细的,如到视图或者列时,可以采用基于sql标准的授权模式
- 在一个Hive服务下,可以将基于元数据存储的授权模式和基于sql标准的授权模式结合使用,这是一种复合模式。 对不同的连接方式采用不同的授权模式,为元数据API调用启用基于存储的授权,在HiveServer2中启用基于SQL标准的授权。这个需要启动不同服务时,采用不同的配置文件。
- 共用配置文件
hive-site.xml
- 元数据服务使用的配置文件
hivemetastore-site.xml
- hive Server 2服务使用的配置文件
hiveserver2-site.xml
- 共用配置文件
基于元数据存储的授权
用来保护元数据的安全
在0.10版本中,元存储服务器的安全功能与基于存储的授权被添加到Hive中。这个功能之前已经在HCatalog中引入。
- 关于元存储服务器中基于存储的授权的其他信息,请参阅HCatalog文档《基于存储的授权》。
元存储服务器安全的必要性
当多个客户端在访问同一个元存储(支持数据库(如MySQL)中)时,数据库的连接凭证可能会在hive-site.xml
配置文件中可见。这样元数据存储库的相当危险,即使底层数据受到HDFS访问控制的保护,一个恶意用户也可能对元数据造成严重的破坏。
另外,当Hive元存储服务器使用Thrift与客户端进行通信,并且有一个用于元数据存储和持久化的备份数据库时,在客户端进行的认证和授权不能保证元存储端的安全性。为了提供元数据的安全性,Hive 0.10版本为元存储增加了授权功能。(参见HIVE-3705)。
元存储安全的配置参数
要启用Hive元存储服务器的安全性,请在hive-site.xml
中设置这些参数:(一般情况下采用默认值就好)
-
hive.metastore.pre.event.listeners
Set to
org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener
.这开启了元存储侧的安全。
-
hive.security.metastore.authorization.manager
Set to
org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider
.这将告诉Hive使用哪一个元存储侧的授权提供者。默认设置使用
DefaultHiveMetastoreAuthorizationProvider
,它实现了标准的Hive授权/撤权模型。要使用基于HDFS权限的模型(推荐)来进行授权,请按照上面的指示使用StorageBasedAuthorizationProvider
。 -
hive.security.metastore.authenticator.manager
Set to
org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator
. -
hive.security.metastore.authorization.auth.reads
当它被设置为
true
时,Hive元存储的授权也会检查读取权限。默认情况下,它被设置为true。读取授权检查是在Hive 0.14.0中引入的。
配置举例
hive-site.xml
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.manager</name>
<value>org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider</value>
</property>
<property>
<name>hive.security.metastore.authorization.manager</name>
<value>org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider</value>
</property>
<property>
<name>hive.security.metastore.authenticator.manager</name>
<value>org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator</value>
</property>
基于sql标准的授权
这种授权模式可以与元存储服务器上的基于存储的授权一起使用。与当前Hive中的默认授权一样,这也将在查询编译时强制执行。为了通过这个选项提供安全保障,必须保证客户端的安全。这可以通过只允许用户通过Hive Server2访问,以及限制用户代码和可以运行的非SQL命令来实现。检查将针对提交请求的用户进行,但查询将以Hive服务器用户的身份运行。输入数据的目录和文件将对该Hive服务器用户有读取权限。对于那些不需要保护恶意用户的用户来说,这也有可能通过Hive命令行来支持。
在这种授权模式下,能够访问Hive CLI、HDFS命令、Pig命令行、hadoop jar
命令等的用户被视为特权用户。在一个组织中,通常只有从事ETL工作负载的团队需要这样的权限。这些工具不会通过HiveServer2来访问数据,因此他们的访问也不会通过这种模式来授权。对于Hive CLI、Pig和MapReduce用户来说,对Hive表的访问可以通过在元存储服务器上启用基于存储的授权来控制。
这种模式主要针对通过HiveServer2使用SQL和ODBC/JDBC的用户,他们的访问可以通过这种授权模式进行控制。
配置举例
hive-site.xml
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.createtable.owner.grants</name>
<value>ALL</value>
</property>
对Hive命令和语句的限制
启用该授权后,诸如dfs、添加、删除、编译和重置等命令将被禁用。
用于改变Hive配置的set命令被限制在一个较小的安全集合中。这可以通过hive.security.authorization.sqlstd.confwhitelist
配置参数来控制。如果这个集合需要定制,HiveServer2管理员可以在其hive-site.xml
中为这个配置参数设置一个值。
添加或删除函数和宏的权限只限于admin角色。
为了使用户能够使用函数,已经添加了创建永久函数的功能。admin角色的用户可以运行命令来创建这些函数,然后所有用户都可以使用这些函数。
当这个授权被启用时,Hive变换子句也被禁用。
权限
● SELECT
权限 – 提供访问对象的能力
● INSERT
权限 – 提供向对象增加数据的能力
● UPDATE
权限 – 提供对对象运行更新查询的能力。
● DELETE
权限 – 提供删除对象中的数据的能力。
● ALL
权限 – 提供所有权限(被转换为上述所有特权)。 在1.x的版本中是向权限管理表中插入4
条记录,在2.x的版本中是向权限管理表插入1
条权限。
对象
- 以上权限适用于
TABLE
和VIEW
。上述权限在数据库上不被支持。 - 在某些操作中会考虑数据库的所有权。
- URI是Hive中的另一个对象,因为Hive允许在SQL语法中使用URI。上述权限不适用于URI对象。使用的URI应该指向文件系统中的一个文件/目录。授权是根据用户在文件/目录上的权限来完成的。
对象所有者
对于某些操作,对象(表/视图/数据库)的所有权决定了你是否被授权执行该操作。
创建表、视图或数据库的用户成为其所有者。在表和视图的情况下,所有者获得所有带有授予选项的权限。
一个角色也可以成为数据库的所有者。alter database "命令可以用来将数据库的所有者设置为一个角色。----实际使用中不建议
用户与角色
权限可以授予用户,也可以授予角色。用户可以属于一个或多个角色。
有两个具有特殊意义的角色– public and admin。所有用户都属于public角色。你在授予语句中使用这个角色来授予所有用户一个权限。
当用户运行Hive查询或命令时,会检查授予该用户的权限和她的 “current roles”。当前的角色可以通过 show current roles;
命令来查看。除了admin角色外,用户的所有角色默认都在当前角色中,不过你可以使用 set role
命令来设置一个特定的角色为当前角色。
做数据库管理员工作的用户应该被添加到admin角色中。
角色管理命令
# 创建角色 只能admin角色用户执行,不可以为 ALL,DEFAULT,NONE
CREATE ROLE role_name;
# 删除角色 只能admin角色用户执行
DROP ROLE role_name;
# 显示用户的当前角色列表。用户的所有行为都是通过查看用户的权限和用户的所有当前角色来授权的。
# 默认的当前角色有用户的所有角色,除了管理员角色(即使该用户也属于管理员角色)。
# 任何用户都可以运行这个命令。
Show Current Roles
# 如果指定了一个role_name,那么这个角色就会成为当前角色中的唯一角色。
将role_name设置为ALL会刷新当前的角色列表(以防新的角色被授予给用户)并将它们设置为默认的角色列表。
将role_name设置为NONE将删除当前用户的所有当前角色。(这是在HIVE-11780中引入的,并将包含在即将发布的1.3.0和1.2.2版本中)。
如果用户不属于的角色被指定为role_name,将导致一个错误。
SET ROLE (role_name|ALL|NONE);
# 列举所有角色 只能admin角色用户执行
SHOW ROLES;
Grant Role
GRANT role_name [, role_name] ...``TO principal_specification [, principal_specification] ... ``[ WITH ADMIN OPTION ];` `principal_specification`` ``: USER user`` ``| ROLE role
授予一个或多个角色给其他角色或用户。
如果指定了 “WITH ADMIN OPTION”,那么用户就获得了向其他用户/角色授予角色的权限。
如果授予语句最终在角色之间建立了循环关系,那么该命令将以错误的方式失败。
Revoke Role
REVOKE [ADMIN OPTION FOR] role_name [, role_name] ...``FROM principal_specification [, principal_specification] ... ;` `principal_specification`` ``: USER user`` ``| ROLE role
撤销FROM子句中的用户/角色的成员资格。
从Hive 0.14.0开始,通过使用REVOKE ADMIN OPTION FOR <role>
(HIVE-6252)可以只撤销ADMIN OPTION。
Show Role Grant
SHOW ROLE GRANT (USER|ROLE) principal_name;
其中principal_name
是一个用户或角色的名称。
列出给定用户或角色被授予的所有角色。
目前任何用户都可以运行这个命令。但这在将来可能会发生变化,允许用户只看到他们自己的角色授予,而要看到其他用户的角色授予则需要额外的权限。
Show Principals
SHOW PRINCIPALS role_name;
列出所有的角色和属于这个角色的用户。
只有admin角色有此权限。
用户授权撤权
#授权到库
grant select on database database_name to user user_name;
REVOKE select on database database_name from user user_name;
#授权到表
grant select on table db_bname.table_name to user user_name;
REVOKE select on table db_bname.table_name from user user_name;
Hive操作所需的权限矩阵表
Y:需要权限。
Y + G:需要特权 “WITH GRANT OPTION”。
Action | Select | Insert | Update | Delete | Ownership | Admin | URI Privilege (RWX Permission + Ownership) |
---|---|---|---|---|---|---|---|
CREATE TABLE | Y (of database) | Y (for create external table – the location) | |||||
DROP TABLE | Y | ||||||
DESCRIBE TABLE | Y | ||||||
SHOW PARTITIONS | Y | ||||||
ALTER TABLE LOCATION | Y | Y (for new location) | |||||
ALTER PARTITION LOCATION | Y | Y (for new partition location) | |||||
ALTER TABLE ADD PARTITION | Y | Y (for partition location) | |||||
ALTER TABLE DROP PARTITION | Y | ||||||
ALTER TABLE (all of them except the ones above) | Y | ||||||
TRUNCATE TABLE | Y | ||||||
CREATE VIEW | Y + G | ||||||
ALTER VIEW PROPERTIES | Y | ||||||
ALTER VIEW RENAME | Y | ||||||
DROP VIEW PROPERTIES | Y | ||||||
DROP VIEW | Y | ||||||
ANALYZE TABLE | Y | Y | |||||
SHOW COLUMNS | Y | ||||||
SHOW TABLE STATUS | Y | ||||||
SHOW TABLE PROPERTIES | Y | ||||||
CREATE TABLE AS SELECT | Y (of input) | Y (of database) | |||||
CREATE INDEX | Y (of table) | ||||||
DROP INDEX | Y | ||||||
ALTER INDEX REBUILD | Y | ||||||
ALTER INDEX PROPERTIES | Y | ||||||
SELECT | Y | ||||||
INSERT | Y | Y (for OVERWRITE) | |||||
UPDATE | Y | ||||||
DELETE | Y | ||||||
LOAD | Y (output) | Y (output) | Y (input location) | ||||
SHOW CREATE TABLE | Y+G | ||||||
CREATE FUNCTION | Y | ||||||
DROP FUNCTION | Y | ||||||
CREATE MACRO | Y | ||||||
DROP MACRO | Y | ||||||
MSCK (metastore check) | Y | ||||||
ALTER DATABASE | Y | ||||||
CREATE DATABASE | Y (if custom location specified) | ||||||
EXPLAIN | Y | ||||||
DROP DATABASE | Y |
核心配置
Restricted/Hidden/Internal List and Whitelist
-
hive.conf.restricted.list
默认值
- Hive 0.11.0: (empty, but includes this list implicitly)
- Hive 0.13.0:
hive.security.authenticator.manager, hive.security.authorization.manager
(HIVE-5953) - Hive 0.14.0:
hive.security.authenticator.manager, hive.security.authorization.manager, hive.users.in.admin.role
(HIVE-6437) - Hive 2.1.0:
hive.security.authenticator.manager,`` hive.security.authorization.manager,`` hive.users.in.admin.role,`` hive.server2.xsrf.filter.enabled
(HIVE-13853) - Hive 2.2.0:
hive.security.authenticator.manager,`` hive.security.authorization.manager,`` hive.security.metastore.authorization.manager,`` hive.security.metastore.authenticator.manager,`` hive.users.in.admin.role,`` hive.server2.xsrf.filter.enabled,`` hive.security.authorization.enabled
(HIVE-14099),hive.server2.authentication.ldap.baseDN
(HIVE-15713),hive.server2.authentication.ldap.url
(HIVE-15713),hive.server2.authentication.ldap.Domain
(HIVE-15713),hive.server2.authentication.ldap.groupDNPattern
(HIVE-15713),hive.server2.authentication.ldap.groupFilter
(HIVE-15713),hive.server2.authentication.ldap.userDNPattern
(HIVE-15713),hive.server2.authentication.ldap.userFilter
(HIVE-15713),hive.server2.authentication.ldap.groupMembershipKey
(HIVE-15713),hive.server2.authentication.ldap.userMembershipKey
(HIVE-15713),hive.server2.authentication.ldap.groupClassKey
(HIVE-15713),hive.server2.authentication.ldap.customLDAPQuery
(HIVE-15713) - Hive 3.0.0: all of the above, plus these:
hive.spark.client.connect.timeout
(HIVE-16876),hive.spark.client.server.connect.timeout
(HIVE-16876),hive.spark.client.channel.log.level
(HIVE-16876),hive.spark.client.rpc.max.size
(HIVE-16876),hive.spark.client.rpc.threads
(HIVE-16876),hive.spark.client.secret.bits
(HIVE-16876),hive.spark.client.rpc.server.address
(HIVE-16876),hive.spark.client.rpc.server.port
(HIVE-16876),hikari.*
(HIVE-17318),dbcp.*
(HIVE-17319), hadoop.bin.path (HIVE-18248), yarn.bin.path (HIVE-18248)
逗号分隔的配置属性列表,这些属性在运行时是不可改变的。例如,如果
hive.security.authorization.enabled
被设置为true
,它应该被包含在这个列表中,以防止客户端在运行时将其改为false
。 -
hive.conf.hidden.list
默认值
- Hive 1.2.2:
javax.jdo.option.ConnectionPassword,hive.server2.keystore.password
(HIVE-9013) - Hive 2.3.0:
fs.s3.awsAccessKeyId,fs.s3.awsSecretAccessKey,fs.s3n.awsAccessKeyId,fs.s3n.awsSecretAccessKey,fs.s3a.access.key,fs.s3a.secret.key,fs.s3a.proxy.password
(HIVE-14588) - Hive 2.3.0:
dfs.adls.oauth2.credential,fs.adl.oauth2.credential ``(
HIVE-18228)
逗号分隔的配置选项列表,普通用户不应阅读,如密码。
- Hive 1.2.2:
-
hive.conf.internal.variable.list
默认值
- Hive 1.3.0:
hive.added.files.path,hive.added.jars.path,hive.added.archives.path
逗号分隔的配置选项列表,这些选项是内部使用的,不应该通过set命令来设置。
- Hive 1.3.0:
-
hive.security.command.whitelist
默认值
- Hive 0.13.0:
set,reset,dfs,add,delete,compile
- Hive 0.14.0:
set,reset,dfs,add,list,delete,reload,compile
逗号分隔的用户被授权执行的非SQL Hive命令的列表。这可以用来限制授权命令的集合。要限制这些命令中的任何一个,请将
hive.security.command.whiteelist
设置为一个不包含该命令的值。 - Hive 0.13.0:
Hive Client Security
-
hive.security.authorization.enabled
默认值
- Hive 0.7.0:
true
启用或禁用Hive客户端的授权。
- Hive 0.7.0:
-
hive.security.authorization.manager
默认值
- Hive 0.7.0:
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider
Hive客户端授权管理器类的名称。用户定义的授权类应该实现
org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider
接口。 - Hive 0.7.0:
-
hive.security.authenticator.manager
默认值
- Hive 0.7.0:
org.apache.hadoop.hive.ql.security.HadoopDefaultAuthenticator
Hive客户端认证器管理器类的名称。用户定义的认证器应该实现org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider的接口。
- Hive 0.7.0:
-
hive.security.authorization.createtable.user.grants
默认值
- Hive 0.7.0:空
每当一个表被创建时,自动授予一些用户的权限。像
userX,userY:select;userZ:create
这样的例子将授予userX和userY select权限,并在创建一个新表时授予userZ create权限。 -
hive.security.authorization.createtable.group.grants
默认值
- Hive 0.7.0:空
每当一个表被创建时,自动授予一些组的权限。像
groupX,groupY:select;groupZ:create
这样的例子将授予groupX和groupY select权限,并在创建一个新表时授予groupZ create权限。 -
hive.security.authorization.createtable.role.grants
默认值
- Hive 0.7.0:空
每当一个表被创建时,自动授予一些角色的权限。像 "roleX,roleY:select;roleZ:create "这样的例子将授予roleX和roleY select权限,并在创建新表时授予roleZ create权限。
-
hive.security.authorization.createtable.owner.grants
默认值
- Hive 0.7.0:空
每当表被创建时,自动授予所有者的权限。例如,"select,drop "将授予表的所有者选择和删除权限。注意,默认情况下,表的创建者没有权限访问该表。
Hive Metastore Security
-
hive.metastore.pre.event.listeners
默认值
- Hive 0.9.0:空
在元存储侧加载的预事件监听器类,以便在数据库、表和分区被创建、更改或删除时运行代码。在hive-site.xml中设置此配置属性为
org.apache.hadoop.hyl.security.authorization.AuthorizationPreEventListener
,以开启Hive元存储侧的安全。 -
hive.security.metastore.authorization.manager
默认值
- Hive 0.10.0:
org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider
Hive 0.13及以前的版本。 元存储中用于授权的授权管理器类名称。用户定义的授权类应该实现
org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider
的接口。Hive 0.14及以后的版本。 元存储中用于授权的授权管理器类的名称(用逗号分隔)。用户定义的授权类应该实现
org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider
接口。所有的授权管理器类都必须成功授权元存储的API调用,才能允许命令的执行。DefaultHiveMetastoreAuthorizationProvider
实现了标准的Hive授予/调用模型。还提供了一个基于存储的授权实现,作为该配置属性的值使用。
org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider
它使用HDFS权限来提供授权,而不是使用Hive式的基于授权的授权。 - Hive 0.10.0:
-
hive.security.metastore.authenticator.manager
默认值
- Hive 0.10.0:
org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator
元存储中用于认证的认证器管理器类名称。用户定义的认证器类应该实现
org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider
的接口。 - Hive 0.10.0:
-
hive.security.metastore.authorization.auth.reads
默认值
- Hive 0.14.0 :
true
如果这是真的,元存储授权器就会授权对数据库和表进行读取操作。
- Hive 0.14.0 :
-
hive.metastore.token.signature
默认值
- 空
从当前用户的令牌中选择令牌时要匹配的授权令牌服务名称。Added in Hive 0.7.0, added to HiveConf in Hive 2.1.0。
SQL Standard Based Authorization
-
hive.users.in.admin.role
默认值
- Hive 0.13.0 :空
逗号分隔的用户列表,这些用户将在元存储启动时被添加到ADMIN角色中。以后还可以添加更多的用户。
-
hive.security.authorization.sqlstd.confwhitelist
默认值
- Hive 0.13.0 :
一个Java regex。当使用SQL标准基础授权时,符合这个重合词的配置属性可以被用户修改。
如果没有设置这个参数,默认的列表会由SQL标准授权器添加。要显示当前版本的默认列表,请使用
set hive.security.authorization.sqlstd.confwhitelist
命令。
在Hive 0.13.0中,默认的白名单有这些属性(参见HIVE-6846,同样的名单每行安排一个属性):hive.exec.reducers.bytes.per.reducer, hive.exec.reducers.max, hive.map.aggr, hive.map.aggr.hash.percentmemory, hive.map.aggr.hash.force.flush.memory.threshold, hive.map.aggr.hash.min.reduction, hive.groupby.skewindata, hive.optimize.multigroupby.common.distincts, hive.optimize.index.groupby, hive.optimize.ppd, hive.optimize.ppd.storage, hive.ppd.recognizetransivity, hive.optimize.groupby, hive.optimize.sort.dynamic.partition, hive.optimize.union.remove, hive.multigroupby.singlereducer, hive.map.groupby.sorted, hive.map.groupby.sorted.testmode, hive.optimize.skewjoin, hive.optimize.skewjoin.compiletime, hive.mapred.mode, hive.enforce.bucketmapjoin, hive.exec.compress.output, hive.exec.compress.intermediate, hive.exec.parallel, hive.exec.parallel.thread.number, hive.exec.rowoffset, hive.merge.mapfiles, hive.merge.mapredfiles, hive.merge.tezfiles, hive.ignore.mapjoin.hint, hive.auto.convert.join, hive.auto.convert.join.noconditionaltask, hive.auto.convert.join.noconditionaltask.size, hive.auto.convert.join.use.nonstaged, hive.enforce.bucketing, hive.enforce.sorting, hive.enforce.sortmergebucketmapjoin, hive.auto.convert.sortmerge.join, hive.execution.engine, hive.vectorized.execution.enabled, hive.mapjoin.optimized.keys, hive.mapjoin.lazy.hashtable, hive.exec.check.crossproducts, hive.compat, hive.exec.dynamic.partition.mode, mapred.reduce.tasks, mapred.output.compression.codec, mapred.map.output.compression.codec, mapreduce.job.reduce.slowstart.completedmaps, mapreduce.job.queuename.
当一些参数与HiveConf.java中的白名单的某个重组规则相匹配时,它们会被自动添加(例如,Hive2.0.0中的hive.log.trace.id–见HIVE-12419)。
请注意,在白名单检查之后,hive.conf.restricted.list的检查仍然被强制执行。 -
hive.security.authorization.sqlstd.confwhitelist.append
默认值
- Hive 0.14.0 :空
除了
hive.security.authorization.sqlstd.confwhitelist
之外,配置属性白名单要匹配的第二个Java重词。不要在值中包括一个开始的|。
使用这个词组而不是更新hive.security.authorization.sqlstd.confwhitelist
的原始词组,意味着你可以追加到由SQL标准授权设置的默认值上,而不是完全替换它。 -
hive.server2.builtin.udf.whitelist
默认值
- Hive 0.13.0 :空
一个逗号分隔的允许执行的内置UDF列表。不在列表中的UDF如果从查询中调用将返回错误。如果设置为空,则被视为通配符–所有的UDF都被允许。请注意,该配置是由HiveServer2在启动时读取的,在会话中使用 "set "命令改变该配置并不会改变行为。
-
hive.server2.builtin.udf.blacklist
默认值
- Hive 0.13.0 :空
以逗号分隔的不允许执行的内置UDF的列表。如果一个UDF被包含在这个列表中,那么如果从查询中调用,将会返回一个错误。 请注意,该配置是由HiveServer2在启动时读取的,在会话中使用 "set "命令改变该配置并不会改变行为。
-
hive.security.authorization.task.factory
默认值
- Hive 1.1.0 :
org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl
要覆盖默认的授权DDL处理,请将
hive.security.authorization.task.factory
设置为实现org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactory
接口的类。 - Hive 1.1.0 :