zoukankan      html  css  js  c++  java
  • hive记录-cdh配置hive和sentry

    1.cdh添加组件-sentry-选择主机-配置数据库

    2.配置数据库

    1)mysql -uroot -p

    2) create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

    3) grant all privileges on sentry.* to root@'%' identified by '123' with grant option;

    4)flush privileges;

    5)exit;

    选择mysql数据库主机、用户名、密码、需要将mysql jdbc驱动拷贝到对应主机下的cm/share/cmf/lib和/opt/cloudera/parcels/CDH-5.10.2-1.cdh5.10.2.p0.5/lib/sentry/lib

    测试连接-下一步-创建数据库表,开启sentry服务

    3.hive配置下勾选sentry、去掉hiveserver2启用模拟、添加属性sentry.hive.testing.mode值为true和hue配置勾选sentry

    4.sentry配置

    5.重启hive和hue

    6.beeline登录进行授权角色

    beeline -u "jdbc:hive2://hadoop03:10000/" -n hive -p hive -d org.apache.hive.jdbc.HiveDriver

    1)创建角色并授权给组

    执行下面的 sql 语句创建 role、group等:
    create role admin_role;
    GRANT ALL ON SERVER server1 TO ROLE admin_role;
    GRANT ROLE admin_role TO GROUP admin;
    GRANT ROLE admin_role TO GROUP hive;

    create role test_role;
    GRANT ALL ON DATABASE filtered TO ROLE test_role;
    GRANT ROLE test_role TO GROUP test;
    上面创建了两个角色:

    admin_role,具有管理员权限,可以读写所有数据库,并授权给 admin 和 hive 组(对应操作系统上的组)
    test_role,只能读写 filtered 数据库,并授权给 test 组。
    因为系统上没有test用户和组,所以需要手动创建:
    groupadd test
    useradd  -G test  test  -p test -m test   创建用户test,并加入test组,设置密码test,创建test home目录

    id test

    usermod -a -G test test添加已存在的用户到已存在的组

    测试admin_role角色
    使用hive用户访问beeline:
    $ beeline -u "jdbc:hive2://hadoop03:10000/" -n hive -p hive -d org.apache.hive.jdbc.HiveDriver
    set system:user.name;
    show roles;
    SHOW GRANT ROLE test_role;
    SHOW GRANT ROLE admin_role;

    测试test_role角色
    使用test用户访问beeline:
    $ beeline -u "jdbc:hive2://hadoop03:10000/" -n test -p test -d org.apache.hive.jdbc.HiveDriver
    set system:user.name;

    7.相关命令简介

    创建和删除角色
    CREATE ROLE role_name
    DROOP ROLE role_name
    角色的授权和撤销
    GRANT ROLE role_name [, role_name] TO GROUP <groupName> [,GROUP
    <groupName>]
    REVOKE ROLE role_name [, role_name] FROM GROUP <groupName> [,GROUP
    <groupName>]
    权限的授予和撤销
    GRANT <PRIVILEGE> [, <PRIVILEGE> ] ON <OBJECT> <object_name> TO ROLE
    <roleName> [,ROLE <roleName>]
    REVOKE <PRIVILEGE> [, <PRIVILEGE> ] ON <OBJECT> <object_name> FROM ROLE
    <roleName> [,ROLE <roleName>]
    查看角色/组权限
    SHOW ROLES;
    SHOW CURRENT ROLES;
    SHOW ROLE GRANT GROUP <groupName>;
    SHOW GRANT ROLE <roleName>;
    SHOW GRANT ROLE <roleName> ON OBJECT <objectName>;

  • 相关阅读:
    数据结构 C#描述 第七章 第二部分
    ASP.NET自定义控件组件开发 第一章 待续
    数据结构 C#描述 第五章 栈和队列
    新手写自定义分页控件
    为什么要自己写控件页不用网上成熟的控件呢?
    设计模式之间可以相互"功能替换"吗?
    转:说说大型高并发高负载网站的系统架构
    自定义控件开发之自定义视图状态
    为什么要自己写控件而不用网上成熟的控件(续:源代码)
    C#面试题之排序
  • 原文地址:https://www.cnblogs.com/xinfang520/p/9329077.html
Copyright © 2011-2022 走看看