Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Databricks SQL
Databricks Runtime
Unity Catalog saja
Unity Catalog dan metastore Azure Databricks Hive bawaan menggunakan lokasi default untuk tabel terkelola. Unity Catalog memperkenalkan beberapa objek baru yang dapat diamankan untuk memberikan hak istimewa ke data dalam penyimpanan objek cloud.
-
Objek Katalog Unity yang digunakan untuk mengabstraksi kredensial jangka panjang dari penyedia penyimpanan cloud.
-
Objek Katalog Unity yang digunakan untuk mengaitkan URI penyimpanan objek cloud dengan kredensial penyimpanan .
-
Tabel Katalog Unity dibuat di lokasi eksternal yang dikelola Katalog Unity.
Lokasi eksternal
Lokasi eksternal adalah objek yang dapat diamankan yang menggabungkan jalur penyimpanan dengan kredensial penyimpanan yang mengotorisasi akses ke jalur tersebut.
Pembuat dari lokasi eksternal merupakan pemilik pertamanya. Pemilik dan pengguna lokasi eksternal dengan MANAGE
hak istimewa dapat memodifikasi nama, URI, dan kredensial penyimpanan lokasi eksternal.
Setelah lokasi eksternal dibuat, Anda dapat memberikan akses ke lokasi tersebut kepada prinsipal tingkat akun (pengguna dan grup).
Pengguna atau grup dengan izin untuk menggunakan lokasi eksternal dapat mengakses jalur penyimpanan apa pun dalam jalur lokasi tanpa akses langsung ke kredensial penyimpanan.
Untuk lebih menyempurnakan kontrol akses, Anda dapat menggunakan GRANT pada tabel eksternal untuk merangkum akses ke file individual dalam lokasi eksternal.
Nama lokasi eksternal tidak memenuhi syarat dan harus unik di dalam metastore.
Jalur penyimpanan lokasi eksternal apa pun tidak dapat dimuat dalam jalur penyimpanan lokasi eksternal lain, atau dalam jalur penyimpanan tabel eksternal menggunakan kredensial penyimpanan eksplisit.
Peringatan
Jika skema (database) terdaftar di metastore Apache Hive tingkat ruang kerja Anda, menghilangkan skema tersebut menggunakan opsi CASCADE
menyebabkan semua file di lokasi skema tersebut dihapus secara rekursif, terlepas dari jenis tabel (terkelola atau eksternal).
Jika skema didaftarkan ke metastore Unity Catalog, file untuk Unity Catalog tabel terkelola dihapus secara rekursif. Namun, file untuk tabel eksternal tidak dihapus. Anda harus mengelola file tersebut menggunakan penyedia penyimpanan cloud secara langsung.
Oleh karena itu, untuk menghindari kehilangan data yang tidak disengaja, Anda tidak boleh mendaftarkan skema pada metastore Hive ke lokasi yang sudah memiliki data. Anda juga tidak boleh membuat tabel eksternal baru di lokasi yang dikelola oleh skema metastore Hive atau yang mengandung tabel terkelola oleh Katalog Unity.
Representasi grafis dari hubungan
Diagram berikut menjelaskan hubungan antara:
- kredensial akses penyimpanan
- lokasi eksternal
- tabel eksternal
- jalur penyimpanan
- Entitas IAM
- Akun layanan Azure
Contoh
-- 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