zoukankan      html  css  js  c++  java
  • Sentry从0到1

    无Sentry
      在没有sentry的情况下,他的权限逻辑是这样的:jdbc采用hive权限创建的表,只有hive用户可以看到;hue用户是无法看到的;
    Sentry
      在启用sentry,就是基于sentry的授权体系了。
    安装Sentry
      启动Sentry,首先要安装:
      1. 安装sentry服务;
      2. 在hive中搜索sentry service,点选Sentry(另外一个是none);同时需要关掉hive的imperson;
      3. 设置sentry.hive.testing.mode;如果不配置,执行sql语句在HUE中报错(java中通过jdbc访问直接返回NULL):Error while compiling statement: FAILED: InvalidConfigurationException hive.server2.authentication can't be none in non-testing mode
      配置方式:
      在hive的配置中搜索“Service-Wide advanced”,会有很多,看说明如下列:
      “Hive Service Advanced Configuration Snippet (Safety Valve) for sentry-site.xml”
      然后在value中添加
    <property>
      <name>sentry.hive.testing.mode</name>
      <value>true</value>
    </property>
    创建角色
      Error while compiling statement: FAILED: SemanticException No valid privileges User hive does not have privileges for SWITCHDATABASE The required privileges: Server=server1->Db=*->Table=+->Column=*->action=select;Server=server1->Db=*->Table=+->Column=*->action=insert;
      当你通过beeline以及!connect jdbc:hive2://localhost:10000/ hive hive进入到hive命令行之后,通过show roles可以发现当前没有角色;没有角色就没有权限;下面的SQL语句就是为hive用户赋予了管理员权限;GRANT ALL就是讲所有的权限赋予了admin角色,然后将hive用户和admin角色绑定。
    1 Create role admin;
    2 GRANT ALL ON SERVER server1 TO ROLE admin WITH GRANT OPTION;
    3 GRANT ROLE admin TO GROUP hive;
    注意上面的语句中的“server1”是Sentry授权服务器的名称(别称),可以在Hive的配置中搜索“Server Name for Sentry Authorization”中查看到,默认的名称就是server1,可以进行修改。
    hive用户就具备了这种管理员权限;下面的方式是让linux的administors组里面的角色都具有了管理员权限;
     GRANT ROLE admin TO GROUP administrators;(administrators即具备了这样一种权限) 
     
     
     
     
     
     
  • 相关阅读:
    Intellij 常用技巧-持续更新
    Android界面组件的四种启动方式
    Preference Screen 首选项
    Oracle OCI-22053:溢出错误
    SQLPLUS使用
    Oracle中数字格式的文本化处理
    MP4V2 移植 (基于imx6 平台)
    IMX6Q camera 应用编程之 摄像头裁剪
    IMX6Q camera驱动分析 (4)
    IMX6Q Camera驱动分析 (3)
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/9173362.html
Copyright © 2011-2022 走看看