没有管理员权限的用户是否可以管理配置单元中的对象访问权限?
我正在使用hive 0.14,主要使用直线。没有管理员权限的用户是否可以管理配置单元中的对象访问权限?
我不是管理员,但我希望创建一些团队可以使用的视图。
我们有一个共同的hive数据库,其中每个人都有读取和写入。如果我创建了某些不希望其他人能够删除或修改的表/视图,是否可以撤销其他人的drop/write访问权限?
对配置单元表的访问取决于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
。
“Hive授权模型”的主题本身需要3天的研讨会。 “首选”模式随着时间的推移而改变,并且还有其他选择(比较Ranger或Sentry插件)。如果你确实不是管理员,并且不想看看可用的小文档,那么祝你好运。 –