Cloudera Hive传统权限管理设置
来源:互联网 发布:google 云计算 入华 编辑:程序博客网 时间:2024/04/20 08:04
step1:
添加jar包至
生产hive客户端路径/user/lib/hive
生产hive服务器路径/opt/cloudera/parcels/CDH/lib/hive/
step2:
admin用户配置CM中hive组件中hive-site参数
<1> Hive Service Advanced Configuration Snippet (Safety Valve) for hive-site.xml
name:hive.security.authorization.enabled value:true name:hive.security.authorization.createtable.owner.grants value:ALL name:hive.security.authorization.task.factory value:org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl name:hive.warehouse.subdir.inherit.perms value:true name:hive.semantic.analyzer.hook vlaue:cn.jpush.HiveAdmin name:hive.metastore.authorization.storage.checks value:true <2> Hive Client Advanced Configuration Snippet (Safety Valve) for hive-site.xml name:hive.security.authorization.enabled value:true name:hive.security.authorization.createtable.owner.grants value:ALL name:hive.security.authorization.task.factory value:org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl name:hive.warehouse.subdir.inherit.perms value:true name:hive.semantic.analyzer.hook vlaue:cn.jpush.HiveAdmin name:hive.metastore.authorization.storage.checks value:true <4> HiveServer2 Advanced Configuration Snippet (Safety Valve) for hive-site.xml name:hive.semantic.analyzer.hook value:cn.jpush.HiveAdmin
– Step3:
– <3.0>修改集群2台namenode服务器文件 /etc/group,为所有用户(除ronghui)添加到data组中。
– <3.1>为date组用户添加kaikai库的rwx权限
– hdfs dfs -setfacl -m group:data:rwx /user/hive/warehouse/kaikai.db
– (删除目前对partner组限定的facl权限,775权限,虽然其他组成员在hdfs有读权限,但是没有写入权限,同时grant方式禁止partner组读取data组的库数据。)
– hdfs dfs -setfacl -b /user/hive/warehouse/sed.db
– <3.2>切换hdfs用户修改/user/warehouse目录下的文件,都改为push用户:data组,包含warehouse文件夹。
– 便于以后有了调度系统,直接删除data组的大部分用户,使用push用户上线,将文件都改为755权限更安全。
– (/user/hive/external已经是push:data,所以不用管。)
– hdfs dfs -chown -R push:data /user/hive/warehouse
– hdfs dfs -chown -R push:data /user/hive/external
– 之后的管理员才能建立的新数据库。因为hive默认是warehouse是hive:hive的user:group关系。
– hdfs dfs -chown -R push:data /user/hive/warehouse/tmp.db
– <3.3>继续使用hdfs用户修改权限为775。
– hdfs dfs -chmod -R 775 /user/hive/warehouse/ads.db
Step4:开始修改hive元数据。
hive -f grant_order.hql
PS:可以在Hive元数据中查看ROLES,DBS,DB_PRIVS,GLOBAL_PRIVS,ROLE_MAP表看以上赋权命令对应的数据记录信息
HiveAdmin class代码
package cn.jpush;/** * Created by wmky_kk on 2017-06-01. * add test */import org.apache.hadoop.hive.ql.parse.*;import org.apache.hadoop.hive.ql.session.SessionState;public class HiveAdmin extends AbstractSemanticAnalyzerHook {// private static String admin = "youck"; private static String[] admin = {"youck","root"}; @Override public ASTNode preAnalyze(HiveSemanticAnalyzerHookContext context, ASTNode ast)throws SemanticException { switch(ast.getToken().getType()) { // shows how a statement can have multiple case labels case HiveParser.TOK_CREATEDATABASE: case HiveParser.TOK_DROPDATABASE: case HiveParser.TOK_CREATEROLE: case HiveParser.TOK_DROPROLE: case HiveParser.TOK_GRANT: case HiveParser.TOK_REVOKE: case HiveParser.TOK_GRANT_ROLE: case HiveParser.TOK_REVOKE_ROLE: String userName = null; if(SessionState.get() != null &&SessionState.get().getAuthenticator()!= null){ userName=SessionState.get().getAuthenticator().getUserName(); } if (!(admin[0].equalsIgnoreCase(userName)||admin[1].equalsIgnoreCase(userName)|| admin[2].equalsIgnoreCase(userName)||admin[3].equalsIgnoreCase(userName))) { throw new SemanticException(userName + " can't use ADMIN options,except " + "\"youck\",\"root\",\"xujun\",\"huangyq\"" + "."); } break; default: break; } return ast; }/* public static void main(String[] args) throws SemanticException { String[] admin = { "admin","root" }; String userName = "root"; for (String tmp : admin) {// System.out.println(tmp); if (!tmp.equalsIgnoreCase(userName)) {// System.out.print(userName+ " can't use ADMIN options, except " + admin[0] + "," + admin[1] + "."); throw new SemanticException(userName + " can't use ADMIN options, except " + admin[0] + "," + admin[1] + "."); } } }*/}
- Cloudera Hive传统权限管理设置
- Hive权限管理默认认证-传统模式
- cloudera manager下的hive权限配置
- cloudera manager下的hive权限配置
- cloudera manager下的hive权限配置
- RBAC传统权限管理模型
- hive的权限管理
- hive的权限管理
- hive权限管理
- hive数据权限管理
- hive表权限管理
- hive权限管理整理
- Hive权限管理:
- Hive 中的权限设置
- hive权限设置
- 在hive中设置超级管理员以实现hive级的权限管理
- hive权限管理之实践
- hive权限设置 部分翻译
- Vue component-based application structure
- split
- linux中获取/更新Let’s encrypt 证书的脚本
- Adobe cc 2017 全系列软件下载 附破解安装教程
- 解决LinearLayout中控件不能居右对齐
- Cloudera Hive传统权限管理设置
- Linux内存管理之kmalloc 与 __get_free_page()
- DiffUtils实现partial bindData
- 20170609大数据工作
- 加载gif
- qt configure 时提示【file to open is a directory】
- 第二章:初探Spring Cloud Eureka+Hystrix+Ribbon+Feign微服务搭建
- ActionScript3.0自定义鼠标指针
- svg.js使用中的一个bug