hive权限控制(二)

本文介绍了Hive中的权限管理系统,包括角色创建与分配、不同级别的权限类型及其操作指令。此外还详细解释了如何进行权限的授予、撤销及查看。

Hive支持的权限有Users,Groups,Roles

一个角色可以包含组或者用户

By default, the Metastore uses the HadoopDefaultAuthenticator for determing user -> group mappings

metastore默认会以metastore所在的机器根据用户名获取用户所属的组,而不是客户端的组。

创建角色

CREATE ROLE role_name
DROP ROLE role_name

角色分配

GRANT ROLE role_name [, role_name] ...
TO principal_specification [, principal_specification] ...
 
REVOKE ROLE role_name [, role_name] ...
FROM principal_specification [, principal_specification] ...
 
principal_specification
  : USER USER
  ¦ GROUP GROUP
  ¦ ROLE ROLE
 
-- 查看权限
SHOW ROLE GRANT principal_specification
 
-- 例子:
CREATE ROLE youxi_role;
GRANT ROLE youxi_role TO USER fatkun;

权限

Hive的权限支持全局权限(Global)、数据库、表、分区、列。

priv_type

权限名称 含义
ALL 所有权限
ALTER 允许修改元数据(modify metadata data of object)—表信息数据
UPDATE 允许修改物理数据(modify physical data of object)—实际数据
CREATE 允许进行Create操作
DROP 允许进行DROP操作
INDEX 允许建索引(目前还没有实现)
LOCK 当出现并发的使用允许用户进行LOCK和UNLOCK操作
SELECT 允许用户进行SELECT操作
SHOW_DATABASE 允许用户查看可用的数据库
GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    [ON object_type]
    TO principal_specification [, principal_specification] ...
    [WITH GRANT OPTION]
 
REVOKE
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    [ON object_type priv_level]
    FROM principal_specification [, principal_specification] ...
 
REVOKE ALL PRIVILEGES, GRANT OPTION
    FROM USER [, USER] ...
 
object_type:
    TABLE
  ¦ DATABASE
 
priv_level:
    db_name
  ¦ tbl_name
 
例子:
GRANT ALL ON DATABASE DEFAULT TO USER fatkun;
GRANT ALL ON TABLE test TO GROUP kpi;
REVOKE ALL ON TABLE test FROM GROUP kpi;
GRANT ALL TO USER fatkun;
REVOKE ALL FROM fatkun;

授权还是挺麻烦的。。你在哪一级别授权,只能在那个级别收回授权。

查看权限

SHOW GRANT principal_specification
[ON object_type priv_level [(column_list)]]
 
例子:
SHOW GRANT GROUP kpi ON TABLE test;
Hive作为一个数据仓库工具,权限控制是确保数据安全和合规性的重要手段。Hive提供了多种权限控制机制,主要包括以下几种: 1. **基于文件系统的权限控制**: - Hive默认使用Hadoop的文件系统权限控制机制,通过HDFS的权限来控制用户对数据的访问。用户需要有相应的HDFS目录和文件的读写权限。 2. **基于SQL的权限控制**: - Hive支持通过SQL语句来管理权限,包括GRANT、REVOKE等命令。用户可以通过这些命令来授予或撤销对数据库、、视图等的访问权限。 3. **基于角色的权限控制**: - Hive支持角色的概念,可以将一组权限分配给一个角色,然后将角色分配给用户。这种方式简化了权限管理,特别是当用户数量较多时。 4. **基于Apache Ranger的权限控制**: - 对于需要更细粒度权限控制的企业环境,可以使用Apache Ranger。Ranger提供了细粒度的访问控制策略,可以基于用户、组、角色等进行权限管理,并且支持审计和监控功能。 5. **基于Apache Sentry的权限控制**: - Apache Sentry是另一个用于Hive权限管理工具,提供了类似Ranger的功能。Sentry可以与Hive集成,提供基于角色的访问控制。 ### 示例: 假设我们有一个名为`employees`的,我们希望只允许用户`alice`读取数据,而用户`bob`可以读取和写入数据。我们可以使用以下SQL命令来实现: ```sql -- 创建一个角色 CREATE ROLE data_reader; CREATE ROLE data_writer; -- 授予角色对权限 GRANT SELECT ON TABLE employees TO ROLE data_reader; GRANT INSERT, SELECT ON TABLE employees TO ROLE data_writer; -- 将角色分配给用户 GRANT ROLE data_reader TO USER alice; GRANT ROLE data_writer TO USER bob; ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值