热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

自定义Hive权限控制(2)权限配置项目

权限配置项目不是这个项目的关键环节,不需要很繁琐。所以我这里使用djangoadmin进行开发。djangoadmin只要针对表关系建立相应的对象配置上即可使用。还是比较方便的。在这里我建立的对象如下:hive对象相关表Hive数据库信息用于存储当前hive中的

权限配置项目不是这个项目的关键环节,不需要很繁琐。所以我这里使用 django admin进行开发。 django admin只要针对表关系建立相应的对象配置上即可使用。还是比较方便的。 在这里我建立的对象如下: hive 对象相关表 Hive数据库信息 用于存储当前 hive 中的

权限配置项目不是这个项目的关键环节,不需要很繁琐。所以我这里使用django admin进行开发。
django admin只要针对表关系建立相应的对象配置上即可使用。还是比较方便的。
在这里我建立的对象如下:

hive对象相关表
Hive数据库信息 用于存储当前hive中的数据库。
Hive数据库表信息 用于存储当前hive中的表信息。
Hive不允许访问的列信息 用于存储关键列,这个表需要与hive数据库表信息关联。
Hive频道分区信息 用于储存当前hive中表的分区信息。
Hive必须包含的列信息 用于存储当前查询中hive必须包含的特殊列。

权限表
用户HiveServer权限表s 用于将使用者与以上hive对象相关联。

表结构如下:

class HiveDB(models.Model):????id = models.AutoField(primary_key=True)????name = models.CharField(max_length=40,verbose_name=u'数据库名称')????desc = models.CharField(max_length=200,verbose_name=u'描述',null = True, blank = True)????class Meta:????????db_table = u'hive_db'????????verbose_name = u'hive数据库列表'????def __unicode__(self):????????return self.name?class HivePtchannelValue(models.Model):????id = models.AutoField(primary_key=True)????name = models.CharField(max_length=40,verbose_name=u'频道')????desc = models.CharField(max_length=200,verbose_name=u'描述',null = True, blank = True)????class Meta: ????????db_table = u'hive_ptchannel_value'????????verbose_name = u'hive频道分区列表'????def __unicode__(self):????????return self.name?class HiveTable(models.Model): ????id = models.AutoField(primary_key=True)????db = models.ForeignKey(HiveDB)????name =models.CharField(max_length=40,verbose_name=u'表名')????ptinfo = models.CharField(max_length=200,verbose_name=u'分区列',null = True, blank = True)????desc =models.CharField(max_length=200,verbose_name=u'描述',null = True, blank = True)????class Meta:????????db_table = u'hive_table'????????verbose_name = u'hive数据库表列表'????def __unicode__(self): ????????return self.db.name+"."+self.name?class ExcludeColumn(models.Model):????id = models.AutoField(primary_key=True)????name =models.CharField(max_length=40,verbose_name=u'名称')????table = models.ForeignKey(HiveTable)????column =models.CharField(max_length=60,verbose_name=u'列名列表')????desc =models.CharField(max_length=200,verbose_name=u'描述',null = True, blank = True)????class Meta:????????db_table = u'hive_excludecolumn'????????verbose_name = u'hive不允许访问列'????def __unicode__(self):????????return self.table.name+"."+self.name?class IncludeColumn(models.Model):????id = models.AutoField(primary_key=True)????name =models.CharField(max_length=40,verbose_name=u'名称')????table = models.ForeignKey(HiveTable)????column =models.CharField(max_length=60,verbose_name=u'列名列表')????desc =models.CharField(max_length=200,verbose_name=u'描述',null = True, blank = True)????class Meta:????????db_table = u'hive_includecolumn'????????verbose_name = u'hive必须包含列'????def __unicode__(self):????????return self.table.name+"."+self.name?class HiveUserAuth(models.Model):????user = models.ForeignKey(User)????dbGroups = models.ManyToManyField(HiveDB, verbose_name=u'hive数据库', blank=True)????tableGroups = models.ManyToManyField(HiveTable, verbose_name=u'hive数据表', blank=True)????exGroups = models.ManyToManyField(ExcludeColumn, verbose_name=u'hive不包含列', blank=True)????inGroups = models.ManyToManyField(IncludeColumn, verbose_name=u'hive包含列', blank=True)????ptGroups = models.ManyToManyField(HivePtchannelValue, verbose_name=u'频道分区', blank=True)????maxMapCount = models.IntegerField(max_length = 4,blank=True,null=True, verbose_name = u'最大任务分区数')????maxRedCount = models.IntegerField(max_length = 2,blank=True,null=True, verbose_name = u'最大reduce槽位')????class Meta:????????db_table = u'hive_user_auth'????????verbose_name = u'用户HiveServer权限表'????def __unicode__(self):????????return self.user.username

熟悉django的同学可以通过以上方式,很快的构建起一个方便的,安全的web服务。django使用这里就不介绍了,有兴趣的同学可以看一下本博客中关于django的一些介绍。

推荐阅读
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 信息安全等级保护是指对国家秘密信息、法人和其他组织及公民的专有信息以及公开信息和存储、传输、处理这些信息的信息系统分等级实行安全保护,对信息系统中使用的信息安全产品实 ... [详细]
  • 无线认证设置故障排除方法及注意事项
    本文介绍了解决无线认证设置故障的方法和注意事项,包括检查无线路由器工作状态、关闭手机休眠状态下的网络设置、重启路由器、更改认证类型、恢复出厂设置和手机网络设置等。通过这些方法,可以解决无线认证设置可能出现的问题,确保无线网络正常连接和上网。同时,还提供了一些注意事项,以便用户在进行无线认证设置时能够正确操作。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 本文讨论了读书的目的以及学习算法的重要性,并介绍了两个算法:除法速算和约瑟夫环的数学算法。同时,通过具体的例子和推理,解释了为什么x=x+k序列中的第一个人的位置为k,以及序列2和序列3的关系。通过学习算法,可以提高思维能力和解决问题的能力。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文详细介绍了使用 SQL Load 和 Excel 的 Concatenate 功能将数据导入 ORACLE 数据库的方法和步骤,同时介绍了使用 PL/SQL tools 将数据导入临时表的方法。此外,还提供了一个转链接,可参考更多相关内容。摘要共计XXX字。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 作者表示自己最近工作非常忙碌,无法抽出时间写作。他计划在未来的几天内写关于namespace与C#的名字解析以及数据库内容转化为excel文件下载的知识。 ... [详细]
author-avatar
空城旧梦-虎哥_919
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有