Oprávnění a zabezpečitelné objekty v metastoru Hive
Platí pro: Databricks SQL Databricks Runtime
Oprávnění je právo udělené objektu zabezpečení pro provoz na zabezpečitelném objektu v metastoru.
Model oprávnění a objekty k zabezpečení se liší podle toho, zda používáte metastore Unity Catalog nebo starší metastore Hive. Tento článek popisuje model oprávnění pro starší metastore Hive. Pokud používáte katalog Unity, viz Oprávnění a zabezpečené objekty vkatalogu Unity.
Zabezpečitelné objekty v metastoru Hive
Zabezpečitelný objekt je objekt definovaný v metastoru, na kterém lze oprávnění udělit objektu zabezpečení.
Pokud chcete spravovat oprávnění pro libovolný objekt, musíte být jeho vlastníkem nebo správcem.
Syntaxe
securable_object
{ ANY FILE |
CATALOG [ catalog_name ] |
{ SCHEMA | DATABASE } schema_name |
FUNCTION function_name |
[ TABLE ] table_name |
VIEW view_name
}
Parametry
ANY FILE
Řídí přístup k základnímu systému souborů.
CATALOG
catalog_nameŘídí přístup k celému katalogu dat.
{ SCHEMA | DATABASE }
schema_nameŘídí přístup ke schématu.
FUNCTION
function_nameŘídí přístup k pojmenované funkci.
[ TABLE ]
table_nameŘídí přístup ke spravované nebo externí tabulce.
VIEW
view_nameŘídí přístup k zobrazením SQL.
Model dědičnosti
Zabezpečitelné objekty v metastoru Hive jsou hierarchické a oprávnění se dědí směrem dolů. To znamená, že udělení nebo zamítnutí oprávnění pro CATALOG
automaticky udělí nebo odepře oprávnění všem schématům v katalogu. Podobně jsou oprávnění udělená objektem schématu zděděna všemi objekty v daném schématu. Tento vzor platí pro všechny zabezpečitelné objekty.
Pokud uživateli odepřete oprávnění k tabulce, uživatel nemůže zobrazit tabulku tím, že se pokusí zobrazit seznam všech tabulek ve schématu. Pokud uživateli odepřete oprávnění ke schématu, uživatel neuvidí, že schéma existuje, když se pokusí vypsat všechna schémata v katalogu.
Typy oprávnění
Následující tabulka uvádí, která oprávnění jsou přidružena k tomu, ke kterým zabezpečitelným objektům.
Typ oprávnění | ANONYMNÍ FUNKCE | LIBOVOLNÝ SOUBOR | CATALOG | SCHEMA | FUNCTION | TABLE | ZOBRAZIT |
---|---|---|---|---|---|---|---|
CREATE | Ano | Ano | |||||
UPRAVIT | Ano | Ano | Ano | Ano | |||
READ_METADATA | Ano | Ano | Ano | Ano | |||
SELECT | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
VYUŽITÍ | Ano | Ano |
ALL PRIVILEGES
Slouží k udělení nebo odvolání všech oprávnění platných pro zabezpečitelný objekt a jeho podřízené objekty bez explicitního zadání. Tím se rozšíří na všechna dostupná oprávnění v době kontroly oprávnění.
CREATE
Vytvořte objekty v katalogu nebo schématu.
MODIFY
COPY INTO, UPDATEDELETE, INSERTnebo MERGE INTO tabulky.
Pokud je "securable_object"
hive_metastore
nebo obsahuje schéma, uděleníMODIFY
zajistí, žeMODIFY
bude uděleno všem současným a budoucím tabulkám a zobrazením v rámci zabezpečitelného objektu.READ_METADATA
Objevte zabezpečitelný objekt v show a interrogate objekt v DESCRIBE
Pokud je zabezpečitelným objektem katalog
hive_metastore
nebo schéma v něm, uděleníREAD_METADATA
udělíREAD_METADATA
pro všechny aktuální a budoucí tabulky a zobrazení v rámci zabezpečitelného objektu.READ FILES
Dotazujte se na soubory přímo pomocí přihlašovacích údajů úložiště nebo externího umístění.
SELECT
Dotazování na tabulku nebo zobrazení, vyvolání uživatelem definované nebo anonymní funkce nebo výběr
ANY FILE
. Uživatel potřebujeSELECT
v tabulce, zobrazení nebo funkci a takéUSAGE
ve schématu a katalogu objektu.Pokud je zabezpečitelným objektem
hive_metastore
nebo schéma v něm, uděleníSELECT
udělíSELECT
všem aktuálním a budoucím tabulkám a zobrazením v rámci zabezpečitelného objektu.USAGE
Povinné, ale nestačí odkazovat na žádné objekty v katalogu nebo schématu. Objekt zabezpečení musí mít také oprávnění k jednotlivým zabezpečitelným objektům.
WRITE FILES
Soubory COPY INTO, které se přímo řídí přihlašovacími údaji úložiště nebo externím umístěním .
Příklady
-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;
-- Revoke a privilege from the general public group.
> REVOKE USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;