我有一个运行 CDH4 版本的 Hadoop 集群。我在为 hive 上的用户授予权限时遇到问题。我的要求是我需要在 hive 上创建一个数据库并仅授予该用户(或组)访问权限的每个 linux 用户。所以其他用户应该不能看到这些表或对它们做任何事情。对于每个具有选择性权限的用户,我已经在 HDFS 中有单独的文件夹。这是我所做的:
My Hive 连接到 oracle 11g 作为其元存储。表都已创建。
修改 /etc/hive/conf/hive-site.xml 并设置“hive.security.authorization.enabled”=true。还有“hive.security.authorization.createtable.owner.grants”=全部。
创建了具有相同组名的 Linux 用户 demo1 和 demo2 即 demo1 和 demo2 以 root 身份登录 hive 提示符,并创建了 2 个数据库 demo1db 和 demo2db。
创建了 2 个角色,demo1_role 和 demo2_role 将组分配给角色,即 demo1 组属于 demo1_role 和 demo2 组属于 demo2_role。
将“全部”授予 demo1db 到 demo1_role 和 demo2db 到 demo2_role
以 demo1 身份登录并进入 hive 提示符。创建表 demo1db.table1。
以 demo2 身份登录并进入 hive 提示符。删除表 demo1db.table1。它允许下降!!!!。虽然它无法删除 HDFS 中的关联数据,因为 demo2 无权访问 demo1 控制的文件夹。该表从 Metastore 中删除。当我使用 demo2 用户创建表并且 demo1 能够删除它时,也会发生同样的情况。
我做错了什么?我还注意到,当我“显示表格”时;在demo1下,它什么都不显示?
有什么建议么?