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.
Zjistěte, jak nastavit nového uživatele s přístupem k projektu a databázi Lakebase. Tento kurz popisuje oprávnění na úrovni projektu (pro správu prostředků Lakebase) i oprávnění na úrovni databáze (pro přístup k datům prostřednictvím Postgres).
O dvou systémech oprávnění
Lakebase Postgres používá dvě vrstvy oprávnění:
Oprávnění projektu (ACL):: Řízení akcí na úrovni platformy, jako jsou vytváření větví, správa výpočetních prostředků a správa nastavení projektu. Ty se spravují prostřednictvím aplikace Lakebase.
Oprávnění role Postgres: Řízení přístupu k datům v samotné databázi. Tyto příkazy se spravují prostřednictvím standardních příkazů Postgres
GRANT.
Tyto systémy nemají automatickou synchronizaci. Tato oprávnění můžete udělit nezávisle nebo společně v závislosti na požadavcích vaší organizace:
- Udělte obě vrstvy uživatelům, kteří potřebují přístup k platformě a přístup k databázi.
- Uživatelům, kteří spravují infrastrukturu, ale nepotřebují dotazovat se na data, udělte pouze oprávnění k projektu.
- Umožněte přístup k databázi pouze uživatelům, kteří potřebují dotazovat data, ale nepotřebují spravovat zdroje LakeBase (mohou se připojit pomocí nástrojů, jako je
psql, s podrobnostmi o připojení).
V tomto kurzu se dozvíte, jak nastavit obě vrstvy přístupu:
- Udělte oprávnění k projektu, aby uživatelé mohli pracovat s prostředky platformy Lakebase (tento kurz používá funkci CAN MANAGE pro úplný přístup a můžete také udělit možnost CAN USE pro přístup jen pro zobrazení a použití).
- Vytvoření role Postgres s odpovídajícími oprávněními databáze pro připojení k databázi a dotazování databáze
Výchozí oprávnění
Všichni uživatelé pracovního prostoru dědí oprávnění CAN CREATE ve výchozím nastavení, což umožňuje prohlížení a vytváření projektů. Pokud chcete udělit další přístup k prostředkům a databázím projektu, musíte explicitně přiřadit FUNKCI CAN USE nebo CAN MANAGE.
Požadavky
- Projekt Lakebase s databází
- Správce pracovního prostoru nebo oprávnění ke správě projektu
- Identita uživatele Azure Databricks (e-mailová adresa) ve stejném pracovním prostoru, kde byl projekt vytvořen
Scénář: Přidání datového analytika s přístupem pro čtení i zápis
Pojďme si projít přidání datového analytika jménem Alex Lopez, který potřebuje:
- Schopnost vytvářet a spravovat větve, výpočty a databáze (MŮŽE SPRAVOVAT)
- Čtení a zápis k tabulkám ve schématu
publicdatabáze Postgres - Schopnost vytvářet nové tabulky pro analýzu
Krok 1: Udělení oprávnění k projektu
Nejprve uživateli udělte oprávnění MŮŽE SPRAVOVAT, aby mohl provádět akce řízení projektů.
- Přejděte k projektu v aplikaci Lakebase.
- Na levém bočním panelu klikněte na Nastavení .
- Posuňte se do části Oprávnění projectu .
- Klikněte na Udělit oprávnění.
- Vyhledejte a vyberte uživatele.
- Vyberte oprávnění MŮŽE SPRAVOVAT.
- Klikněte na Povolit.
Co UMOŽŇUJE SPRAVOVAT:
- Vytváření a odstraňování větví
- Správa výpočetních prostředků a konfigurace nastavení projektu
- Vytváření a správa databází a rolí Postgres
- Úplná kontrola nad operacemi projektu
Poznámka:
CAN MANAGE uděluje úplnou kontrolu nad projektem, včetně mnoha dalších akcí. CAN USE umožňuje prohlížení a používání prostředků (seznam, zobrazení, získání identifikátoru URI připojení a určité operace větví) bez úplné správy. Úplný seznam všech úrovní oprávnění a konkrétních akcí, které jednotlivé akce umožňují, najdete v tématu Seznamy ACL projektu Lakebase.
Krok 2: Vytvoření role Postgres pro uživatele
Teď vytvořte roli OAuth, která umožňuje Alexovi autentizovat se pomocí své identity Azure Databricks pomocí tokenů OAuth. Jako vlastník projektu máte potřebná oprávnění k vytváření rolí.
Otevřete Editor SQL Lakebase a připojte se k projektu.
databricks_authVytvořte rozšíření (pokud ještě není povolené):CREATE EXTENSION IF NOT EXISTS databricks_auth;databricks_create_rolePomocí funkce vytvořte roli OAuth Postgres pro Alex:SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
Tím se vytvoří role OAuth, která:
- Má stejný název jako jejich identita Azure Databricks (
alex.lopez@databricks.com) - Může se ověřovat pomocí tokenů OAuth.
- Má oprávnění LOGIN.
- Ještě nemá žádná oprávnění k databázi (tyto další oprávnění udělíme)
Poznámka:
O rolích OAuth:
- Role OAuth se ověřují pomocí časově omezených tokenů (platnost vyprší po 1 hodině)
- Uživatelé získávají tokeny z dialogového okna připojení aplikace Lakebase
- Nejvhodnější pro interaktivní relace a pracovní postupy integrované do pracovního prostoru
- Další informace najdete v tématu O ověřování
Krok 3: Udělení oprávnění k databázi Postgres
Teď udělte Alexi oprávnění k databázi, která potřebují. Udělíme jim ke schématu public přístup pro čtení i zápis.
-- Grant CONNECT permission on the database
GRANT CONNECT ON DATABASE databricks_postgres TO "alex.lopez@databricks.com";
-- Grant USAGE permission on the public schema (required to access objects in it)
GRANT USAGE ON SCHEMA public TO "alex.lopez@databricks.com";
-- Grant CREATE permission on the public schema (allows creating new tables)
GRANT CREATE ON SCHEMA public TO "alex.lopez@databricks.com";
-- Grant read-write access to all existing tables in public schema
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO "alex.lopez@databricks.com";
-- Grant permissions on future tables (so Alex can access new tables automatically)
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "alex.lopez@databricks.com";
-- Grant permission to use sequences (needed for SERIAL columns)
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO "alex.lopez@databricks.com";
-- Grant permissions on future sequences
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT USAGE, SELECT ON SEQUENCES TO "alex.lopez@databricks.com";
Jaká tato oprávnění umožňují:
-
CONNECT: Připojení k databázi -
USAGEve schématu: Přístup k objektům ve schématu -
CREATEna schématu: Vytvořit nové tabulky, zobrazení, funkce -
SELECT, INSERT, UPDATE, DELETEv tabulkách: Čtení a zápis dat - Sekvenční oprávnění: Používejte automaticky přírůstkové sloupce
Krok 4: Otestování připojení
Požádejte Alex, aby ověřil, že se může připojit a získat přístup k databázi.
Použití editoru SQL Lakebase:
Alex otevře aplikaci Lakebase a přejde do projektu.
Alex otevře Lakebase SQL Editor.
V editoru SQL by měl být Alex schopný spustit následující dotazy k ověření oprávnění:
-- Check role memberships SELECT rolname FROM pg_roles WHERE rolname = 'alex.lopez@databricks.com'; -- Verify can read data SELECT * FROM your_table LIMIT 5; -- Verify can write data INSERT INTO your_table (column1, column2) VALUES ('test', 'value'); -- Verify can create tables CREATE TABLE alex_analysis ( id SERIAL PRIMARY KEY, notes TEXT, created_at TIMESTAMP DEFAULT NOW() );
Alternativně můžete použít psql:
Alex se také může připojit z externích nástrojů, jako je psql:
- Na řídicím panelu projektu klikněte na Připojit.
- Vyberte větev, výpočetní prostředky a databázi.
- V rozevíracím seznamu Role vyberte
alex.lopez@databricks.com. -
psqlZkopírujte fragment kódu připojení. - Klikněte na Kopírovat token OAuth a získejte ověřovací token.
- Připojte se pomocí zkopírovaného
psqlpříkazu a po zobrazení výzvy k zadání hesla zadejte token OAuth. - Spusťte stejné ověřovací dotazy uvedené výše.
Alternativní: Přístup k databázi jen pro čtení
Uživatelům, kteří potřebují dotazovat pouze data bez jejich úpravy, udělte stejná oprávnění projektu, ale použijte více omezující oprávnění k databázi:
Oprávnění projektu
Udělte oprávnění CAN USE pro přístup k projektu jen pro zobrazení a použití (např. identifikátor URI připojení, seznam větví). Udělte oprávnění SPRÁVCE pro tvorbu databází, rolí a dalších projektových operací.
Oprávnění k databázi
-- Create OAuth role
SELECT databricks_create_role('analyst@databricks.com', 'USER');
-- Grant CONNECT permission
GRANT CONNECT ON DATABASE databricks_postgres TO "analyst@databricks.com";
-- Grant USAGE on the public schema
GRANT USAGE ON SCHEMA public TO "analyst@databricks.com";
-- Grant SELECT-only access to all existing tables
GRANT SELECT ON ALL TABLES IN SCHEMA public TO "analyst@databricks.com";
-- Grant SELECT-only access to future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO "analyst@databricks.com";
-- Grant USAGE on sequences (needed to view sequence values)
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO "analyst@databricks.com";
To poskytuje:
- Přístup pro čtení ke všem tabulkám
- Zobrazení struktury databáze
- Nelze upravit data (ne INSERT, UPDATE, ODSTRANIT).
- Nelze vytvořit tabulky nebo jiné objekty.
Práce se skupinami a instančními objekty
Stejným postupem můžete udělit přístup ke skupinám a instančním objektům Azure Databricks. Udělte oprávnění k projektu prostřednictvím uživatelského rozhraní aplikace Lakebase, vytvořte role OAuth pomocí databricks_create_role()a udělte oprávnění k databázi. Další informace naleznete v tématu Skupiny a služební zástupci.
Použití nativních rolí hesel Postgres
Jako alternativu k rolím OAuth můžete vytvořit nativní role hesel Postgres pro aplikace, které nemůžou aktualizovat tokeny po hodinách, dlouhotrvající procesy nebo externí nástroje, které OAuth nepodporují. Pokyny k vytváření a správě rolí hesel najdete v tématu Správa rolí Postgres.