Sdílet prostřednictvím


Kurz: Udělení přístupu k projektu a databázi novému uživateli

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í:

  1. 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.

  2. 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 public databá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ů.

  1. Přejděte k projektu v aplikaci Lakebase.
  2. Na levém bočním panelu klikněte na Nastavení .
  3. Posuňte se do části Oprávnění projectu .
  4. Klikněte na Udělit oprávnění.
  5. Vyhledejte a vyberte uživatele.
  6. Vyberte oprávnění MŮŽE SPRAVOVAT.
  7. Klikněte na Povolit.

Udělení oprávnění CAN MANAGE

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í.

  1. Otevřete Editor SQL Lakebase a připojte se k projektu.

  2. databricks_auth Vytvořte rozšíření (pokud ještě není povolené):

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  3. databricks_create_role Pomocí 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
  • USAGE ve schématu: Přístup k objektům ve schématu
  • CREATE na schématu: Vytvořit nové tabulky, zobrazení, funkce
  • SELECT, INSERT, UPDATE, DELETE v 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:

  1. Alex otevře aplikaci Lakebase a přejde do projektu.

  2. Alex otevře Lakebase SQL Editor.

  3. 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:

  1. Na řídicím panelu projektu klikněte na Připojit.
  2. Vyberte větev, výpočetní prostředky a databázi.
  3. V rozevíracím seznamu Role vyberte alex.lopez@databricks.com.
  4. psql Zkopírujte fragment kódu připojení.
  5. Klikněte na Kopírovat token OAuth a získejte ověřovací token.
  6. Připojte se pomocí zkopírovaného psql příkazu a po zobrazení výzvy k zadání hesla zadejte token OAuth.
  7. 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.

Další kroky