千家信息网

hive增加普通用户,只赋予select权限,无create,drop等权限

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,hive增加普通用户,只赋予select权限,无create,drop等权限刚接到客户的要求,提出增加4个普通hive用户,具有select权限,不具有createdatabase/table,dro
千家信息网最后更新 2025年02月04日hive增加普通用户,只赋予select权限,无create,drop等权限

hive增加普通用户,只赋予select权限,无createdrop等权限

刚接到客户的要求,提出增加4个普通hive用户,具有select权限,不具有createdatabase/tabledropdatabase/table的权限,只保留amos用户具有selectcreatedroprevoke所有权限。

往上搜索了一大堆,最后解决办法是:

1、首先amos用户登录hive,赋予自己对数据库dmp所有权限

[amos@DMP-GATEWAY amos]$ cd /opt/amos/hive/bin/[amos@DMP-GATEWAY bin]$ ./hivehive> grant all on database dmp to user amos;

2linux添加普通用户mcduser1

centos6.7系统上增加mcduser1用户:useradd mcduser1

3、修改hadoop上用户的权限

hadoop fs -chmod -R 777 /user/hive/warehousehadoop fs -chmod -R 777 /tmp

4、修改hive配置文件hive-site.xml,增加权限控制,然后重启hive服务:metastoreHiveServer2hwi

   hive.security.authorization.enabled   true    enableordisable the hive clientauthorization   hive.security.authorization.createtable.owner.grants   ALL   theprivileges automatically granted to theownerwhenever a table gets created. Anexample like "select,drop"willgrant select and drop privilege to theowner of thetable

5、用超级用户amos登录hive,给普通用户mcduser1赋予select权限

[amos@DMP-GATEWAY amos]$ cd /opt/amos/hive/bin/[amos@DMP-GATEWAY bin]$ ./hivehive> grant select on database dmp to user mcduser1;

注意:如果权限赋于错误,可以用revoke删除权限

hive> revoke select on database dmp from user amos;

6、测试发现mcduser1用户使用select count(*)启动的mapreduce,但是会自动失败,最后看yarn日志错误是:

Diagnostics:    Application application_1484125831039_0001 failed 3 times due to AM Containerfor appattempt_1484125831039_0001_000003 exited with exitCode: -1000For more detailed output, check application trackingpage:http://DMP-DEV01:8088/cluster/app/application_1484125831039_0001Then,click on links to logs of each attempt.Diagnostics: Application application_1484125831039_0001 initialization failed(exitCode=255) with output: User mcduser1 not foundFailing this attempt. Failing the application.

原来gatewany服务器上有mcduser1用户,但是在nodemanager上面没有该用户,使用ansible在所有的node服务器上添加该用户,注意,使用useradd-s /sbin/nologin mcduser1,不允许mcduser1nodemanager上登录。

[root@mcddmpfe01 ~]# ansible amosDnNodes -m shell -a'useradd -s /sbin/nologin mcduser1'/opt/amos/python2.7/lib/python2.7/site-packages/pycrypto-2.6.1-py2.7-linux-x86_64.egg/Crypto/Util/number.py:57:PowmInsecureWarning: Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.mcddmpnode05 | SUCCESS | rc=0 >>mcddmpnode01 | SUCCESS | rc=0 >>mcddmpnode03 | SUCCESS | rc=0 >>mcddmpnode02 | SUCCESS | rc=0 >>mcddmpnode04 | SUCCESS | rc=0 >>mcddmpnode07 | SUCCESS | rc=0 >>mcddmpnode06 | SUCCESS | rc=0 >>mcddmpnode08 | SUCCESS | rc=0 >>

测试通过,普通用户可以在hive上通过select count(*) from table启动mapreduce程序。

hive> select count(*) from store_master;Query ID = hiveuser1_20170112122713_fea2188b-7e19-4a9a-896d-ec472c60d0caTotal jobs = 1Launching Job 1 out of 1Number of reduce tasks determined at compile time: 1In order to change the average load for a reducer (in bytes):  sethive.exec.reducers.bytes.per.reducer=In order to limit the maximum number of reducers:  sethive.exec.reducers.max=In order to set a constant number of reducers:  setmapreduce.job.reduces=Starting Job = job_1484051373423_1338, Tracking URL =http://mcddmpfe02:8088/proxy/application_1484051373423_1338/Kill Command = /opt/amos/hadoop/bin/hadoop job  -killjob_1484051373423_1338Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 12017-01-12 12:27:36,289 Stage-1 map = 0%,  reduce = 0%2017-01-12 12:27:48,349 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU4.01 sec2017-01-12 12:27:59,130 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU7.86 secMapReduce Total cumulative CPU time: 7 seconds 860 msecEnded Job = job_1484051373423_1338MapReduce Jobs Launched: Stage-Stage-1: Map: 1  Reduce: 1   Cumulative CPU: 7.86 sec  HDFS Read: 0 HDFS Write: 0 SUCCESSTotal MapReduce CPU Time Spent: 7 seconds 860 msecOK2302Time taken: 47.764 seconds, Fetched: 1 row(s)hive> create database test;Authorization failed:No privilege 'Create' found for outputs { }. Use SHOWGRANT to get more details.

8、至于用户的Hive操作日志,目前记录在用户目录的.hivehistory文件下即/home/$user/.hivehistory

例如:mcduser1用户在hive命令行的操作日志记录在:/home/hiveuser1/.hivehistoy

9、现在发现一个问题,就是普通用户可以添加权限,这个问题还没有找到合适的解决办法,可能需要开发写一段hook程序了。


用户 权限 普通 日志 服务 登录 办法 文件 服务器 程序 错误 问题 测试 合适 命令 大堆 客户 就是 数据 数据库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 关系型数据库建立规则 美图秀秀不能与服务器联系 创建数据库使用的工具是什么 数据库转专业实验报告 查询数据库英文翻译 老马笔记软件开发 平度直播软件开发解决方案 有哪些是服务器的游戏 濮阳网络技术产品介绍 宿城区直销网络技术供应商家 创梦网络安全吗 残疾人软件开发工程师 网络技术专业能做深恶 it软件开发是什么意思 虹口区国际网络技术服务诚信为本 杭州瀚阅网络技术有限公司 数据库创建表保存后找不到 服务器实体机hp 电脑下载软件提示服务器断开 网络安全工程师麦克维尔 简单的网络安全宣传手抄报 美图秀秀不能与服务器联系 河北什么是软件开发服务推广 扬州市网络安全宣传周启动 易语言外部数据库控件 vf三级能考网络技术吗 hf数字应用平台软件开发 网络文学作品的网络安全 网络安全应急处理领导小组 江苏企业微服务架构数据库
0