没有管理员权限的用户是否可以管理配置单元中的对象访问权限?

问题描述:

我正在使用hive 0.14,主要使用直线。没有管理员权限的用户是否可以管理配置单元中的对象访问权限?

我不是管理员,但我希望创建一些团队可以使用的视图。

我们有一个共同的hive数据库,其中每个人都有读取和写入。如果我创建了某些不希望其他人能够删除或修改的表/视图,是否可以撤销其他人的drop/write访问权限?

+0

“Hive授权模型”的主题本身需要3天的研讨会。 “首选”模式随着时间的推移而改变,并且还有其他选择(比较Ranger或Sentry插件)。如果你确实不是管理员,并且不想看看可用的小文档,那么祝你好运。 –

对配置单元表的访问取决于HDFS访问权限。

每当在位于db的数据库中创建新表tbl时,都会创建一个新目录db/tbl

如果你想限制到该目录使用hadoop fs -chmod写入群组访问,例如:

hadoop fs -chmod 750 db/tbl

如果你想找出表位于一个数据库,你可以创建一个表,而指定一个位置,然后运行describe formated tbl

您可以随时检查哪些表的访问权限运行hadoop fs -ls db

关于视图:

虽然基于存储的授权可以在数据库,表和分区的水平提供访问控制, 由于文件系统提供的访问控制处于目录和文件的级别,因此它无法控制更好的级别(如列和视图)中的授权。精细粒度访问控制的先决条件是数据服务器能够仅提供用户需要(或已经)访问的列和行。在文件系统访问的情况下,整个文件被提供给用户。 HiveServer2满足了这个条件,因为它有一个可以理解行和列(通过使用SQL)的API,并且能够只提供SQL查询所要求的列和行。

SQL Standards Based Authorization(引入Hive 0.13.0,HIVE-5837)可用于实现细粒度访问控制。它基于授权的SQL标准,并使用熟悉的grant/revoke语句来控制访问。 它需要通过HiveServer2配置启用。

请注意,对于Hive命令行,禁用基于SQL标准的授权。这是因为Hive中使用访问控制策略的Hive命令行不可能实现安全的访问控制,因为用户可以直接访问HDFS,因此他们可以轻松绕过基于SQL标准的授权检查,甚至完全禁用它。禁用此功能可以避免给用户带来虚假的安全感。

因此,总之,需要在配置中启用SQL Standards Based Authorization

然后你就可以在视图上使用:REVOKE

+0

也是这种情况的意见? – paolov

+0

@ user55570是的,如果您撤销读取访问权限 - 只有您可以读取这些文件,这意味着只有您可以读取表格。 –

+0

好的,但据我所见只有一张桌子有相关的hdfs文件。一个视图不会。 – paolov