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 FUNCTION
a CREATE MATERIALIZED VIEW
na default
schema 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.
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říkladCATALOG
neboTABLE
. Zobrazit zabezpečitelné objekty -
<securable-name>
: Název zabezpečitelného. Pokud jeMETASTORE
zabezpeč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
- V pracovním prostoru Azure Databricks klikněte na ikonu
Catalog.
- Select objekt, například catalog, schema, tablenebo zobrazení.
- 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
- V pracovním prostoru Azure Databricks klikněte na ikonu
Catalog.
- Select objekt, například catalog, schema, tablenebo zobrazení.
- 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
- V pracovním prostoru Azure Databricks klikněte na ikonu
Catalog.
- Select objekt, například catalog, schema, tablenebo zobrazení.
- Přejděte na kartu Oprávnění .
- Klikněte na Grant.
- Zadejte e-mailovou adresu uživatele nebo jména skupiny.
- Select oprávnění k grant.
- 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
- V pracovním prostoru Azure Databricks klikněte na ikonu
Catalog.
- Select objekt, například catalog, schema, tablenebo zobrazení.
- Přejděte na kartu Oprávnění .
- Select oprávnění udělená uživateli, instančnímu objektu nebo skupině.
- Klikněte na Revoke.
- 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
- V pracovním prostoru Azure Databricks klikněte na ikonu
Catalog.
- Vedle popisku stránky Catalog Exploreru klikněte na ikonu vedle názvu metastoru.
- 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
- V pracovním prostoru Azure Databricks klikněte na ikonu
Catalog.
- Vedle popisku stránky Catalog Exploreru klikněte na ikonu vedle názvu metastoru.
- Na kartě Oprávnění klikněte na Grant.
- Zadejte e-mailovou adresu uživatele nebo jména skupiny.
- Select oprávnění k grant.
- 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 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
- V pracovním prostoru Azure Databricks klikněte na ikonu
Catalog.
- Vedle popisku stránky Catalog Exploreru klikněte na ikonu vedle názvu metastoru.
- Na kartě Oprávnění vyberte select uživatele nebo skupinu a klikněte na Revoke.
- 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 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.