Sdílet prostřednictvím


Správa oprávnění v Unity Catalog

Tento článek vysvětluje, jak řídit přístup k datům a dalším objektům v Unity Catalog. Informace o tom, jak se tento model liší od řízení přístupu v metastoru Hive, najdete v tématu Práce s Unity Catalog a starším metastorem Hive.

Kdo může spravovat oprávnění?

Uživatelé zpočátku nemají přístup k datům v metastoru. Správci účtů Azure Databricks, správci pracovních prostorů a správci metastoru mají výchozí oprávnění ke správě Unity Catalog. Viz oprávnění správce v Unity Catalog.

Všechny zabezpečitelné objekty v Unity Catalog mají vlastníka. Vlastníci objektů mají všechna oprávnění k danému objektu, včetně možnosti grant oprávnění k jiným objektům zabezpečení. Vlastníci můžou grant jiným uživatelům udělit oprávnění MANAGE na objektu, což umožňuje uživatelům spravovat oprávnění na objektu. Viz Správa vlastnictví objektu Unity Catalog.

Oprávnění mohou být udělena některou z následujících možností:

  • Správce metastoru.
  • Uživatel s oprávněním MANAGE k objektu.
  • Vlastník objektu.
  • Vlastník catalog nebo schema, který obsahuje objekt.

Správci účtů mohou také grant oprávnění přímo v metastoru.

oprávnění pracovního prostoru catalog

Pokud byl váš pracovní prostor automaticky povolen pro Unity Catalog, ve výchozím nastavení se připojí k metastoru a v metastoru se pro váš pracovní prostor vytvoří pracovní prostor catalog. Správci pracovních prostorů jsou výchozími vlastníky pracovního prostoru catalog. Jako vlastníci mohou spravovat oprávnění k pracovnímu prostoru catalog a ke všem podřízeným objektům.

Všichni uživatelé pracovního prostoru obdrží oprávnění USE CATALOG v pracovním prostoru catalog. Uživatelé pracovního prostoru obdrží také oprávnění USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTIONa CREATE MATERIALIZED VIEW na defaultschema v catalog.

Další informace naleznete v tématu Automatické povolení Unity Catalog.

Model dědičnosti

Zabezpečitelné objekty v Unity Catalog jsou hierarchické a oprávnění se dědí směrem dolů. Objekt nejvyšší úrovně, ze kterého jsou zděděna oprávnění, je catalog. To znamená, že udělení oprávnění catalog nebo schema automaticky udělí oprávnění všem aktuálním a budoucím objektům v rámci catalog nebo schema. Pokud například uživateli udělíte oprávnění SELECT pro catalog, bude tento uživatel moci select (číst) všechny tables a views v tomto catalog. Oprávnění udělená v metastoru Unity Catalog nejsou zděděna.

Unity hierarchie objektů Catalog

Vlastníci objektu mají automaticky udělená všechna oprávnění k danému objektu. Kromě toho mohou vlastníci objektů grant oprávnění k samotnému objektu a ke všem jeho podřízeným objektům. To znamená, že vlastníci schema nemají automaticky všechna oprávnění k tables v schema, ale mohou grant sami oprávnění k tables v schema.

Poznámka:

Pokud jste vytvořili metastore Unity Catalog během veřejné verze Preview (před 25. srpnem 2022), možná jste na modelu dřívějších oprávnění, který aktuální model dědičnosti nepodporuje. Na model oprávnění verze 1.0 můžete upgradovat na get dědičnosti oprávnění. Viz Upgrade na dědičnost oprávnění.

ukázat, granta revoke oprávnění

Oprávnění pro objekty metastoru můžete spravovat pomocí příkazů SQL, rozhraní příkazového řádku Databricks, poskytovatele Databricks Terraformnebo Catalog Exploreru.

V následujících příkazech SQL nahraďte tuto zástupnou hodnotu values.

  • <privilege-type> je typ oprávnění Unity Catalog. Viz Typy oprávnění.
  • <securable-type>: Typ zabezpečitelného objektu, například CATALOG nebo TABLE. Zobrazit zabezpečitelné objekty
  • <securable-name>: Název zabezpečitelného. Pokud je METASTOREzabezpečitelný typ , nezadávejte zabezpečitelný název. Předpokládá se, že se jedná o metastor připojený k pracovnímu prostoru.
  • <principal> je uživatel, instanční objekt (reprezentovaný hodnotou applicationId) nebo skupina. Musíte uzavřít uživatele, instanční objekty a názvy skupin, které obsahují speciální znaky v zpětných znacích (` `). Viz objekt zabezpečení.

Zobrazit udělení u objektů v metastore Unity Catalog

Poznámka:

V současné době uživatelé, kteří mají oprávnění MANAGE k objektu, nemohou zobrazit všechna oprávnění pro tento objekt v INFORMATION_SCHEMA. Místo toho INFORMATION_SCHEMA zobrazuje pouze granty, které jsou vlastními granty objektu. Toto chování bude v budoucnu opraveno.

Uživatelé s oprávněním MANAGE můžou zobrazit všechny granty objektu pomocí příkazů SQL nebo Catalog Exploreru. Viz Správa oprávnění v Unity Catalog.

Požadovaná oprávnění:

  • Správci metastoru, uživatelé s oprávněním MANAGE na objekt, vlastník objektu nebo vlastník catalog či schema, který obsahuje objekt, mohou vidět všechny granty na objekt.
  • Pokud nemáte výše uvedená oprávnění, můžete u objektu zobrazit pouze vlastní granty.

Catalog Explorer

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.
  2. Select objekt, například catalog, schema, tablenebo zobrazení.
  3. Přejděte na kartu Oprávnění .

SQL

V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL. U konkrétního objektu zabezpečení můžete zobrazit granty nebo můžete zobrazit všechny granty pro zabezpečitelný objekt.

  SHOW GRANTS [principal] ON  <securable-type> <securable-name>

Například následující příkaz zobrazí všechna oprávnění pro schema s názvem jako výchozí v nadřazeném catalog pojmenovaném hlavní:

  SHOW GRANTS ON SCHEMA main.default;

Příkaz vrátí:

  principal     actionType     objectType objectKey
  ------------- -------------  ---------- ------------
  finance-team   CREATE TABLE  SCHEMA     main.default
  finance-team   USE SCHEMA    SCHEMA     main.default

Zobrazit mé granty na objektech v metastoru Unity Catalog

Požadovaná oprávnění: U objektu můžete vždy zobrazit vlastní granty.

Catalog Průzkumník

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.
  2. Select objekt, například catalog, schema, tablenebo zobrazení.
  3. Přejděte na kartu Oprávnění . Pokud nejste vlastníkem objektu nebo správcem metastoru, můžete u objektu zobrazit pouze své vlastní granty.

SQL

Spuštěním následujícího příkazu SQL v poznámkovém bloku nebo editoru dotazů SQL zobrazte udělení u objektu.

  SHOW GRANTS `<user>@<domain-name>` ON  <securable-type> <securable-name>

Grant oprávnění k objektům v "metastore" Unity Catalog

požadovaná oprávnění: správce metastoru, oprávnění MANAGE objektu, vlastníka objektu nebo vlastníka catalog nebo schema, který objekt obsahuje.

Catalog Průzkumník

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.
  2. Select objekt, například catalog, schema, tablenebo zobrazení.
  3. Přejděte na kartu Oprávnění .
  4. Klikněte na Grant.
  5. Zadejte e-mailovou adresu uživatele nebo jména skupiny.
  6. Select oprávnění k grant.
  7. Klikněte na OK.

SQL

V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL.

  GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>

Následující příkaz například udělí skupině s názvem finanční tým přístup k vytvoření tables ve výchozím schema pojmenovaném výchozím s nadřazenou catalog s názvem hlavní:

  GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
  GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
  GRANT USE CATALOG ON CATALOG main TO `finance-team`;

Všimněte si, že registrované modely jsou typem funkce. Pokud chcete grant oprávnění k modelu, musíte použít GRANT ON FUNCTION. Pokud chcete například grant skupinu ml-team-acme oprávnění EXECUTE modelu prod.ml_team.iris_model, použili byste:

  GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO `ml-team-acme`;

Revoke oprávnění k objektům v metastoru Unity Catalog

Požadovaná oprávnění: Správce metastoru, privilegium MANAGE k objektu, vlastník objektu, nebo vlastník catalog nebo schema, který obsahuje objekt.

Catalog Explorer

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.
  2. Select objekt, například catalog, schema, tablenebo zobrazení.
  3. Přejděte na kartu Oprávnění .
  4. Select oprávnění udělená uživateli, instančnímu objektu nebo skupině.
  5. Klikněte na Revoke.
  6. Potvrďte to kliknutím na Revoke.

SQL

V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL.

  REVOKE <privilege-type> ON <securable-type> <securable-name> TO <principal>

Následující příkaz například odvolá přístup skupině finance-team k vytváření tables v schema s názvem výchozí s nadřazenou skupinou catalog pojmenovanou hlavní:

  REVOKE CREATE TABLE ON SCHEMA main.default TO `finance-team`;

Zobrazení grantů na metastoru

Požadovaná oprávnění: Správce metastoru nebo správce účtu. Můžete si také prohlédnout vlastní granty na metastoru.

Catalog Průzkumník

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.
  2. Vedle popisku stránky Catalog Exploreru klikněte na ikonu vedle názvu metastoru.
  3. Přejděte na kartu Oprávnění .

SQL

V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL. U konkrétního objektu zabezpečení můžete zobrazit granty nebo můžete zobrazit všechny granty na metastoru.

  SHOW GRANTS [principal] ON METASTORE

Grant oprávnění k metastore

Požadovaná oprávnění: Správce metastoru nebo správce účtu.

Catalog Explorer

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.
  2. Vedle popisku stránky Catalog Exploreru klikněte na ikonu vedle názvu metastoru.
  3. Na kartě Oprávnění klikněte na Grant.
  4. Zadejte e-mailovou adresu uživatele nebo jména skupiny.
  5. Select oprávnění k grant.
  6. Klikněte na OK.

SQL

  1. V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL.

    GRANT <privilege-type> ON METASTORE TO <principal>;
    

    Když grant přiřadíte oprávnění k metastoru, nezahrnujete název metastoru, protože se automaticky předpokládá metastor připojený k vašemu pracovnímu prostoru.

Revoke oprávnění k metastore

Požadovaná oprávnění: Správce metastoru nebo správce účtu.

Catalog Explorer

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.
  2. Vedle popisku stránky Catalog Exploreru klikněte na ikonu vedle názvu metastoru.
  3. Na kartě Oprávnění vyberte select uživatele nebo skupinu a klikněte na Revoke.
  4. Potvrďte to kliknutím na Revoke.

SQL

  1. V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL.

    REVOKE <privilege-type> ON METASTORE FROM <principal>;
    

    Když revoke oprávnění k metastoru, nezahrnete název metastoru, protože se předpokládá metastor připojený k vašemu pracovnímu prostoru.