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.
Důležité
Automatické škálování LakeBase je v beta verzích v následujících oblastech: eastus2, westeurope, westus.
Automatické škálování LakeBase je nejnovější verze LakeBase s automatickým škálováním výpočetních prostředků, škálováním na nulu, větvení a okamžitým obnovením. Porovnání funkcí se službou Lakebase Provisioned najdete v tématu Volba mezi verzemi.
Při vytváření projektu vytvoří Lakebase v projektu několik rolí Postgres:
- Role Postgres pro identitu Azure Databricks vlastníka projektu (například
user@databricks.com), která vlastní výchozídatabricks_postgresdatabázi - Administrativní role
databricks_superuser
Databáze databricks_postgres se vytvoří, abyste se mohli připojit a vyzkoušet Lakebase hned po vytvoření projektu.
Vytvoří se také několik rolí spravovaných systémem. Jedná se o interní role používané službami Azure Databricks pro operace správy, monitorování a dat.
Poznámka:
Role Postgres řídí přístup k databázi (kdo může dotazovat data). Oprávnění projektu (kdo může spravovat infrastrukturu) najdete v tématu Oprávnění projectu. Kurz nastavení obou najdete v tématu Kurz: Udělení přístupu k projektu a databázi novému uživateli.
Viz předpřipravené role a systémové role.
Vytvoření rolí Postgres
Lakebase podporuje dva typy rolí Postgres pro přístup k databázi:
-
Role OAuth pro identity Azure Databricks: Vytvořte je pomocí
databricks_authrozšíření a SQL. Umožňuje identitám Azure Databricks (uživatelům, instančním objektům a skupinám) připojit se pomocí tokenů OAuth. - Nativní role hesel Postgres: Vytvořte je pomocí uživatelského rozhraní Lakebase nebo SQL. Použijte libovolný platný název role s ověřováním hesla.
Pokyny k výběru typu role, která se má použít, najdete v přehledu ověřování. Každý z nich je navržený pro různé případy použití.
Vytvoření role OAuth pro identitu Azure Databricks pomocí SQL
Pokud chcete identitám Azure Databricks (uživatelům, instančním objektům nebo skupinám) umožnit připojení pomocí tokenů OAuth, musíte pomocí databricks_auth rozšíření vytvořit jejich role Postgres. Vytvoření role pro skupinu umožňuje všem členům skupiny ověřovat pomocí role skupiny, což zjednodušuje správu oprávnění.
Podrobné pokyny k získání tokenů OAuth v tocích user-to-machine a machine-to-machine najdete v tématu Získání tokenu OAuth v toku user-to-machine a získání tokenu OAuth v toku počítače do počítače v dokumentaci k ověřování.
Požadavky:
- Musíte mít k databázi oprávnění
CREATEaCREATE ROLE. - Musíte být ověřeni jako identita ve službě Azure Databricks s platným tokenem OAuth.
- Relace nativně ověřené v Postgresu nemohou vytvářet role OAuth.
Vytvoření role OAuth:
databricks_authVytvořte rozšíření. Každá databáze Postgres musí mít vlastní rozšíření.CREATE EXTENSION IF NOT EXISTS databricks_auth;databricks_create_rolePomocí funkce vytvořte roli Postgres pro identitu Azure Databricks:SELECT databricks_create_role('identity_name', 'identity_type');Pro uživatele Azure Databricks:
SELECT databricks_create_role('myuser@databricks.com', 'USER');Objekt zabezpečení Azure Databricks:
SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');Pro skupinu Azure Databricks:
SELECT databricks_create_role('My Group Name', 'GROUP');V názvu skupiny se rozlišují malá a velká písmena a musí přesně odpovídat tomu, jak se zobrazuje v pracovním prostoru Azure Databricks. Když vytvoříte roli Postgres pro skupinu, může se jakýkoli přímý nebo nepřímý člen (uživatel nebo instanční objekt) této skupiny Databricks ověřit ve formě role skupiny Postgres s použitím svého individuálního tokenu OAuth. To vám umožní spravovat oprávnění na úrovni skupiny v Postgresu místo udržování oprávnění pro jednotlivé uživatele.
Udělte nově vytvořené roli oprávnění k databázi.
Funkce databricks_create_role() vytvoří roli Postgres pouze s oprávněním LOGIN . Po vytvoření role musíte udělit příslušná oprávnění a oprávnění k databázím, schématům nebo tabulkám, ke které uživatel potřebuje přístup. Další informace: Správa oprávnění
Ověřování založené na skupinách
Když vytvoříte roli Postgres pro skupinu Azure Databricks, povolíte ověřování na základě skupin. To umožňuje každému členovi skupiny Azure Databricks ověřit se v Postgres pomocí role skupiny, což zjednodušuje správu oprávnění.
Jak to funguje:
- Vytvoření role Postgres pro skupinu Databricks pomocí
databricks_create_role('Group Name', 'GROUP'). - Udělte oprávnění k databázi skupinové roli v PostgreSQL. Viz Správa oprávnění.
- Jakýkoli přímý nebo nepřímý člen (uživatel nebo instanční objekt) skupiny Databricks se může připojit k Postgres pomocí jejich individuálního tokenu OAuth.
- Při připojení se člen autentizuje jako funkce skupiny a převezme všechna oprávnění přidělená této funkci.
Proces ověřování:
Když se člen skupiny připojí, zadá název role Postgres skupiny jako uživatelské jméno a vlastní token OAuth jako heslo:
export PGPASSWORD='<OAuth token of a group member>'
export GROUP_ROLE_NAME='<pg-case-sensitive-group-role-name>'
psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUP_ROLE_NAME
Důležitá hlediska:
- Ověření členství ve skupině: Členství ve skupině se ověřuje pouze v době ověřování. Pokud se člen po navázání připojení odebere ze skupiny Azure Databricks, připojení zůstane aktivní. Nové pokusy o připojení od odebraných členů jsou odmítnuty.
- Rozsahy pracovních prostorů: Ověřování na základě skupin podporuje pouze skupiny přiřazené ke stejnému pracovnímu prostoru Azure Databricks jako projekt. Informace o přiřazování skupin k pracovnímu prostoru najdete v tématu Správa skupin.
-
Rozlišování velikosti písmen: Název skupiny použitý ve
databricks_create_role()se musí shodovat s názvem skupiny přesně tak, jak se zobrazuje v pracovním prostoru Azure Databricks, včetně velikosti písmen. - Správa oprávnění: Správa oprávnění na úrovni skupiny v Postgres je efektivnější než správa oprávnění jednotlivých uživatelů. Když udělíte oprávnění k roli skupiny, všichni aktuální a budoucí členové skupiny zdědí tato oprávnění automaticky.
Poznámka:
Názvy rolí nesmí překročit 63 znaků a některé názvy nejsou povolené. Další informace: Správa rolí
Vytvoření nativní role hesla Postgres
Nativní role hesel Postgres můžete vytvořit pomocí uživatelského rozhraní Lakebase nebo standardních příkazů SQL.
Pomocí uživatelského rozhraní:
- V aplikaci Lakebase přejděte na stránku přehledu vaší větve a pak na kartu Role a databáze větve.
- Klikněte na Přidat roli a zadejte název role (libovolný platný název role Postgres).
- Klikněte na Vytvořit.
- Zkopírujte vygenerované heslo a bezpečně ho poskytněte uživateli, který bude tuto roli používat.
Uživatelské rozhraní Lakebase automaticky generuje zabezpečené heslo s 60bitovou entropií. Role vytvořené prostřednictvím uživatelského rozhraní jsou automaticky uděleny členství v databricks_superuser roli, která poskytuje široká oprávnění k databázi.
Pomocí SQL:
Nativní role hesel Postgres můžete vytvořit také pomocí standardních příkazů Postgres SQL:
CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';
Při vytváření rolí pomocí SQL by heslo mělo mít alespoň 12 znaků s kombinací malých písmen, velkých písmen, čísel a symbolů. Uživatelsky definovaná hesla se ověřují při vytváření, aby se zajistila 60bitová entropie.
Zobrazení rolí Postgres
uživatelské rozhraní
Pokud chcete zobrazit všechny role Postgres v projektu, přejděte na kartu Role a databáze vaší větve v aplikaci Lakebase. Zobrazí se všechny role vytvořené ve větvi s výjimkou systémových rolí, včetně nativních rolí Postgres s ověřováním hesla.
PostgreSQL
Zobrazit všechny role pomocí \du příkazu:
Všechny role Postgres, včetně systémových rolí, můžete zobrazit pomocí meta příkazu z libovolného \du klienta Postgres (například psql) nebo editoru SQL Lakebase:
\du
List of roles
Role name | Attributes
-----------------------------+------------------------------------------------------------
cloud_admin | Superuser, Create role, Create DB, Replication, Bypass RLS
my.user@databricks.com | Create role, Create DB, Bypass RLS
databricks_control_plane | Superuser
databricks_gateway |
databricks_monitor |
databricks_reader_12345 | Create role, Create DB, Replication, Bypass RLS
databricks_replicator | Replication
databricks_superuser | Create role, Create DB, Cannot login, Bypass RLS
databricks_writer_12345 | Create role, Create DB, Replication, Bypass RLS
Zobrazí se všechny role a jejich atributy (Superuživatel, Vytvořit roli, Vytvořit databázi atd.).
Vyřazení role Postgres
Můžete odstranit role založené na identitě Databricks i nativní role hesel v Postgresu.
uživatelské rozhraní
Odstranění role je trvalá akce, kterou nelze vrátit zpět. Roli, která vlastní databázi, nelze odstranit. Před odstraněním role, která je vlastníkem databáze, musí být databáze odstraněna.
Odstranění jakékoli role Postgres pomocí uživatelského rozhraní:
- V aplikaci Lakebase přejděte na kartu Role a databáze vaší větve.
- V nabídce role vyberte Odstranit roli a potvrďte odstranění.
PostgreSQL
Libovolnou roli Postgres můžete odstranit pomocí standardních příkazů Postgres. Podrobnosti najdete v dokumentaci k PostgreSQL týkající se vyřazení rolí.
Vyřazení role:
DROP ROLE role_name;
Po vyřazení role založené na identitě Azure Databricks se už tato identita nemůže ověřit v Postgres pomocí tokenů OAuth, dokud se nevytvoří nová role.
Předpřipravené role
Po vytvoření projektu Azure Databricks automaticky vytvoří role Postgres pro správu projektů a začínáme.
| Role | Description | Zděděná oprávnění |
|---|---|---|
<project_owner_role> |
Identita tvůrce projektu v Azure Databricks (například my.user@databricks.com). Tato role vlastní výchozí databricks_postgres databázi a může se přihlásit a spravovat projekt. |
Člen databricks_superuser |
databricks_superuser |
Interní administrativní role. Slouží ke konfiguraci a správě přístupu v rámci projektu. Tato role má udělená široká oprávnění. | Dědí z pg_read_all_data, pg_write_all_dataa pg_monitor. |
Další informace o konkrétních možnostech a oprávněních těchto rolí: Předem vytvořené možnosti rolí
Systémové role vytvořené službou Azure Databricks
Azure Databricks vytvoří následující systémové role vyžadované pro interní služby. Tyto role můžete zobrazit pomocí zadání příkazu \du z psql nebo z editoru Lakebase SQL.
| Role | Účel |
|---|---|
cloud_admin |
Role superuživatele používaná ke správě cloudové infrastruktury |
databricks_control_plane |
Role superuživatele používaná interními komponentami Databricks pro operace správy |
databricks_monitor |
Používá se interními službami shromažďování metrik. |
databricks_replicator |
Používá se pro operace replikace databáze. |
databricks_writer_<dbid> |
Role pro každou databázi používaná k vytváření a správě synchronizovaných tabulek |
databricks_reader_<dbid> |
Role pro jednotlivé databáze použitá ke čtení tabulek registrovaných v Unity Catalogu |
databricks_gateway |
Používá se pro interní připojení pro spravované služby obsluhující data. |
Pokud chcete zjistit, jak role, oprávnění a členství v rolích fungují v Postgresu, použijte následující zdroje informací v dokumentaci k Postgresu: