zoukankan      html  css  js  c++  java
  • Hive权限管理(十)

    Hive权限管理

    1、hive授权模型介绍

    (1)Storage Based Authorization in the Metastore Server
    基于存储的授权 - 可以对Metastore中的元数据进行保护,但是没有提供更加细粒度的访问控制(例如:列级别、行级别)。
    (2)SQL Standards Based Authorization in HiveServer2
    基于SQL标准的Hive授权 - 完全兼容SQL的授权模型,推荐使用该模式。
    (3)Default Hive Authorization (Legacy Mode)
    hive默认授权 - 设计目的仅仅只是为了防止用户产生误操作,而不是防止恶意用户访问未经授权的数据。

    2、基于SQL标准的hiveserver2授权模式

    ​ (1)完全兼容SQL的授权模型
    ​ (2)除支持对于用户的授权认证,还支持角色role的授权认证
    ​ 1、role可理解为是一组权限的集合,通过role为用户授权
    ​ 2、一个用户可以具有一个或多个角色,默认包含另种角色:public、admin

    3、基于SQL标准的hiveserver2授权模式的限制

    ​ 1、启用当前认证方式之后,dfs, add, delete, compile, and reset等命令被禁用。
    ​ 2、通过set命令设置hive configuration的方式被限制某些用户使用。
    ​ (可通过修改配置文件hive-site.xml中hive.security.authorization.sqlstd.confwhitelist进行配置)
    ​ 3、添加、删除函数以及宏的操作,仅为具有admin的用户开放。
    ​ 4、用户自定义函数(开放支持永久的自定义函数),可通过具有admin角色的用户创建,其他用户都可以使用。
    ​ 5、Transform功能被禁用。

    4、详细配置
    <property>
      <name>hive.security.authorization.enabled</name>
      <value>true</value>
    </property>
    <property>
      <name>hive.server2.enable.doAs</name>
      <value>false</value>
    </property>
    <property>
      <name>hive.users.in.admin.role</name>
      <value>root</value>
    </property>
    <property>
      <name>hive.security.authorization.manager</name>  <value>org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory</value>
    </property>
    <property>
      <name>hive.security.authenticator.manager</name>
      <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
    </property>
    
    5、Hive权限管理命令
    --角色的添加、删除、查看、设置:
    -- 创建角色
    CREATE ROLE role_name;  
    -- 删除角色
    DROP ROLE role_name; 
    -- 设置角色
    SET ROLE (role_name|ALL|NONE); 
    -- 查看当前具有的角色
    SHOW CURRENT ROLES;  
    -- 查看所有存在的角色
    SHOW ROLES;  
    
    6、Hive权限分配图
    Action Select Insert Update Delete Owership Admin URL Privilege(RWX Permission + Ownership)
    ALTER DATABASE Y
    ALTER INDEX PROPERTIES Y
    ALTER INDEX REBUILD Y
    ALTER PARTITION LOCATION Y Y (for new partition location)
    ALTER TABLE (all of them except the ones above) Y
    ALTER TABLE ADD PARTITION Y Y (for partition location)
    ALTER TABLE DROP PARTITION Y
    ALTER TABLE LOCATION Y Y (for new location)
    ALTER VIEW PROPERTIES Y
    ALTER VIEW RENAME Y
    ANALYZE TABLE Y Y
    CREATE DATABASE Y (if custom location specified)
    CREATE FUNCTION Y
    CREATE INDEX Y (of table)
    CREATE MACRO Y
    CREATE TABLE Y (of database) Y (for create external table – the location)
    CREATE TABLE AS SELECT Y (of input) Y (of database)
    CREATE VIEW Y + G
    DELETE Y
    DESCRIBE TABLE Y
    DROP DATABASE Y
    DROP FUNCTION Y
    DROP INDEX Y
    DROP MACRO Y
    DROP TABLE Y
    DROP VIEW Y
    DROP VIEW PROPERTIES Y
    EXPLAIN Y
    INSERT Y Y (for OVERWRITE)
    LOAD Y (output) Y (output) Y (input location)
    MSCK (metastore check) Y
    SELECT Y
    SHOW COLUMNS Y
    SHOW CREATE TABLE Y+G
    SHOW PARTITIONS Y
    SHOW TABLE PROPERTIES Y
    SHOW TABLE STATUS Y
    TRUNCATE TABLE Y
    UPDATE Y
  • 相关阅读:
    oracle 查询 主机名和对应的IP地址
    mysql 常用命令
    linux 下 mysql-5.5.8 安装
    oracle批量插入数据(测试)
    Oracle数据库查询优化(上百万级记录如何提高查询速度)
    针对分区表一个月3个分区定期清理脚本
    C语言中%p,%u,%lu都有什么用处
    MAC下查看环境变量的值的方法
    Mac 终端 Linux 命令总结(简单命令)
    TypeScript学习-TypeScript环境配置
  • 原文地址:https://www.cnblogs.com/littlepage/p/11439219.html
Copyright © 2011-2022 走看看