启用蜂巢metastore表访问控制集群上(遗留)

请注意

本文包含引用白名单,砖不使用的一个术语。从软件中删除这个词时,我们就将它从这篇文章。

本文描述了如何启用表访问控制内置的蜂巢metastore集群上。

如何设置信息上的特权蜂巢metastore可获得的对象一旦启用访问控制表在一个集群中,看到的蜂巢metastore特权和可获得的对象(遗留)

请注意

蜂巢metastore表访问控制是一个遗留数据治理模型。砖建议你使用统一目录而不是它的简单性和account-centered治理模型。你可以表由蜂巢metastore升级到统一目录metastore

使集群表访问控制

表访问控制有两个版本:

  • SQL-only表访问控制限制用户的SQL命令。你是局限于Apache火花的SQL API,因此不能使用Python, Scala, R,抽样api,或客户直接从云存储读取数据,比如DBUtils

  • Python和SQL表访问控制,它允许用户运行SQL、Python和PySpark命令。你是局限于火花的SQL API和DataFrame API,因此不能使用Scala, R,抽样api,或客户直接从云存储读取数据,比如DBUtils

重要的

即使表启用访问控制集群,砖工作区管理员访问文件级数据。

SQL-only表访问控制

这个版本的表访问控制限制用户的SQL命令。

启用SQL-only表访问控制集群和集群只使用SQL命令的限制,设置以下标志的集群火花相依:

spark.databricks.acl。sqlOnly真实

请注意

访问SQL-only表访问控制不受影响的启用访问控制表设置在管理设置页面。设置控件的workspace-wide支持Python和SQL表访问控制。

Python和SQL表访问控制

这个版本的表访问控制允许用户运行Python命令使用DataFrame API以及SQL。当上启用一个集群,集群的用户:

  • 只能使用火花SQL API访问火花或DataFrame API。在这两种情况下,访问表和视图由管理员根据砖的限制权限可以授予蜂巢metastore对象

  • 必须作为low-privilege用户集群节点上运行的命令禁止访问文件系统的敏感部分或创建网络连接端口80和443。

    • 只有内置的火花函数可以创建网络连接端口80和443。

    • 只有工作区管理用户或用户任何文件特权可以从外部数据库通过读取数据PySpark JDBC连接器

    • 如果你想让Python程序能够访问额外的出站端口,可以设置火花配置spark.databricks.pyspark.iptable.outbound.whitelisted.ports你想要的港口允许访问。支持格式的配置值(端口(端口):[、港口港[:]]…],例如:21日,22日,9000:9999。端口必须在有效的范围内,也就是说,0 - 65535

试图绕过这些限制将失败与一个例外。这些限制是通过集群用户不能访问未经授权的数据。

启用表访问控制您的工作区

之前用户可以配置Python和SQL表访问控制、数据砖工作区必须启用表访问控制砖工作区和拒绝用户访问集群不支持访问控制表。

  1. 管理员设置页面

  2. 单击工作空间设置选项卡。

  3. 单击访问控制集群,池和工作切换。

  4. 点击确认

  5. 单击访问控制表切换。

  6. 点击确认

强制访问控制表

确保您的用户访问只有你想要的数据,您必须限制用户集群表启用访问控制。特别是,您应确保:

  • 用户没有权限创建集群。如果他们创建一个集群没有表的访问控制,他们可以访问任何数据从集群。

  • 用户没有可以连接到允许任何集群不支持访问控制表。

看到集群访问控制为更多的信息。

为表创建一个集群启用访问控制

表的访问控制是默认启用集群共享访问模式

使用REST API来创建集群,明白了创建新集群

设置数据对象上的特权

看到蜂巢metastore特权和可获得的对象(遗留)