Databricks SQL安全模型和數據訪問概述

Databricks SQL安全模型基於SQL數據庫中建立良好的安全模型,允許使用標準SQL語句設置細粒度訪問權限,格蘭特而且撤銷.下圖說明了如何保護數據。

安全模型

黃色用戶組已被授予查詢權限表1而且觀點1.這些表的文件和目錄被組織在不同的數據集中。在這個例子中,表1數據在數據集1而且數據集2而且觀點1數據在數據集的

當您開始時,或者對於簡單的場景(例如僅在單個工作空間中訪問數據),您可以將文件和目錄直接存儲在Databricks文件係統(DBFS)中。這些文件和目錄被稱為管理.不需要配置額外的憑據來管理對托管數據的訪問。

但是,文件和目錄通常存儲在雲存儲中。這些文件和目錄被稱為非托管.要訪問雲存儲中的非托管數據,Databricks使用雲存儲憑據向雲提供商進行身份驗證。在下圖中,Databricks使用證書1數據集1而且數據集2而且證書2數據集的.Databricks管理員配置Databricks以使用正確的憑據訪問雲存儲上的數據。有關更多信息,請參見雲存儲接入概述在本文後麵。表和視圖的用戶通常不會直接看到或使用憑證。

用戶和組通常在標識提供程序(IdP)中進行管理,並同步到Databricks,例如使用SCIM

國內流離失所者同步

以下部分概述了如何使用Databricks表訪問控製管理對數據的訪問、配置對雲存儲的訪問以及管理用戶和組。

表訪問控製概述

Databricks表訪問控製使您能夠保護以下對象。我們稱之為可獲得的對象

  • 目錄:控製對整個數據目錄的訪問。

  • 數據庫:控製對數據庫的訪問。

  • 表格:控製對托管表或外部表的訪問。

  • 視圖:控製對SQL視圖的訪問。

  • 任何文件:控製對底層文件係統的訪問。被授予訪問權限的用戶任何文件通過直接從文件係統讀取,可以繞過對目錄、數據庫、表和視圖的限製。

隻有Databricks管理員和對象所有者可以授予對安全對象的訪問權限。用戶創建Databricks SQL或Data Science & Engineering中使用集群的數據庫、表或視圖啟用表訪問控製成為它的所有者。所有者被授予所有權限,並可以將權限授予其他用戶。如果對象沒有所有者,管理員可以設置對象的所有者。下表總結了每個角色可以授予權限的可用角色和對象。

角色

是否可以授予訪問權限

磚管理員

目錄和底層文件係統中的所有對象。

目錄的所有者

目錄中的所有對象。

數據庫所有者

數據庫中的所有對象。

表的主人

隻有桌子。

有關更多信息,請參見數據對象權限

雲存儲接入概述

請注意

如果您正在使用Databricks管理表不需要配置對雲存儲的訪問。

為了查詢雲存儲中的數據,Databricks管理員通過IAM角色和實例配置文件配置Databricks SQL對雲存儲的訪問,如下圖所示。圖中使用映射到實例概要文件的IAM角色進行訪問雲存儲1而且雲存儲2

外部存儲

配置雲存儲接入包括三個步驟:

  1. 創建實例概要文件或重用現有實例概要文件。

  2. 將實例概要文件訪問權限授予AWS S3桶。

  3. 配置Databricks SQL倉庫實例配置文件這樣就可以訪問雲存儲中的數據。

用戶和組概述

磚管理員管理用戶和組在數據科學和工程工作空間中。對於Databricks SQL, Databricks建議使用組而不是用戶,因為這樣更容易管理數據訪問權限。有兩個選項來設置組:

  • 將IdP (Identity Provider)組同步到數據庫使用SCIM API。Databricks推薦這個選項,因為這樣可以將身份的真實來源保存在IdP中,同時Databricks仍然可以使用它。在圖中,Azure Active Directory中的用戶和組被同步到Databricks SQL並用於格蘭特語句來保護數據庫對象(如表和視圖)。

    SCIM同步
  • 在“數據庫”中創建組使用SQL、UI或API。

新手教程

SQL管理員可以為訪問數據對象配置新的工作空間,也可以使用已經配置了對數據對象的訪問的數據科學與工程工作空間。以下文章描述了配置對雲存儲的訪問以及將數據科學與工程安全模型映射到Databricks SQL的詳細步驟。