Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:
Databricks SQL
Databricks Runtime
pouze pro Unity Catalog.
Katalog Unity a integrovaný metastore Azure Databricks Hive používají výchozí umístění pro spravované tabulky. Katalog Unity zavádí několik nových zabezpečitelných objektů pro udělení oprávnění k datům v cloudovém úložišti objektů.
-
Objekt katalogu Unity používaný k abstrakci dlouhodobých přihlašovacích údajů od poskytovatelů cloudového úložiště.
-
Objekt katalogu Unity použitý k přidružení identifikátoru URI cloudového úložiště objektů k přihlašovacím údajům úložiště.
-
Tabulka katalogu Unity vytvořená v externím umístění spravovaném katalogem Unity .
Externí umístění
Externí umístění je zabezpečitelný objekt, který kombinuje cestu k úložišti s přihlašovacími údaji úložiště, které autorizuje přístup k této cestě.
Tvůrce externího umístění je jeho počátečním vlastníkem. Vlastník externího umístění a uživatelé s MANAGE oprávněním můžou změnit název, identifikátor URI a přihlašovací údaje k úložišti externího umístění.
Po vytvoření externího umístění k němu můžete udělit přístup uživatelům a skupinám na úrovni účtu.
Uživatel nebo skupina s oprávněním k použití externího umístění může přistupovat k libovolné úložné cestě v rámci cesty k danému umístění, aniž by měli přímý přístup k přístupovým údajům úložiště.
K dalšímu upřesnění řízení přístupu můžete použít GRANT u externích tabulek k zapouzdření přístupu k jednotlivým souborům v externím umístění.
Názvy externích umístění jsou nekvalifikované a musí být jedinečné v rámci metastoru.
Cesta k úložišti libovolného externího umístění nemůže být obsažena v cestě k úložišti jiného externího umístění ani být obsažena v cestě k úložišti externí tabulky, která používá explicitní přihlašovací údaje pro úložiště.
Varování
Pokud je ve vašem metastoru Hive na úrovni pracovního prostoru zaregistrované schéma (databáze), odstranění tohoto schématu pomocí možnosti CASCADE způsobí, že se všechny soubory v tomto umístění schématu odstraní rekurzivně bez ohledu na typ tabulky (spravovaný nebo externí).
Pokud je schéma zaregistrované v metastoru katalogu Unity, odstraní se rekurzivně soubory pro tabulky spravované katalogem Unity . Soubory pro externí tabulky se ale neodstraní. Tyto soubory musíte spravovat přímo pomocí poskytovatele cloudového úložiště.
Abyste se vyhnuli náhodné ztrátě dat, neměli byste nikdy registrovat schéma v metastoru Hive do umístění s existujícími daty. Neměli byste také vytvářet nové externí tabulky v umístěních spravovaných schématy metastore Hive nebo v místech obsahujících tabulky spravované Unity Catalog.
Grafické znázornění relací
Následující diagram popisuje vztah mezi:
- přihlašovací údaje k úložišti
- vnější lokality
- externí tabulky
- cesty k úložišti
- IAM entity
- Účty služeb Azure
Příklady
-- Grant `finance` user permission to create external location on `my_azure_storage_cred` storage credential, and then create an external location on the specific path to which `my_azure_storage_cred` has access
> GRANT CREATE EXTERNAL LOCATION ON STORAGE CREDENTIAL `my_azure_storage_cred` TO `finance`
> CREATE EXTERNAL LOCATION `finance_loc` URL 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance'
WITH (CREDENTIAL `my_azure_storage_cred`)
COMMENT 'finance';
-- Grant read, write, and create table access to the finance location to `finance` user
> GRANT READ FILES, WRITE FILES, CREATE EXTERNAL TABLE ON EXTERNAL LOCATION `finance_loc` TO `finance`;
-- `finance` can read from any storage path under abfss://depts/finance but nowhere else
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/finance` WITH (CREDENTIAL my_azure_storage_cred);
100
> SELECT count(1) FROM `delta`.`abfss://container@storageaccount.dfs.core.windows.net/depts/hr/employees` WITH (CREDENTIAL my_azure_storage_cred);
Error
-- `finance` can create an external table over specific object within the `finance_loc` location
> CREATE TABLE main.default.sec_filings LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings';
-- Cannot list files under an external table with a user that doesn't have SELECT permission on it
> LIST 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings'
Error
> LIST 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log'
Error