Megosztás:


Oktatóanyag: Projekt- és adatbázis-hozzáférés biztosítása új felhasználónak

Fontos

A Lakebase automatikus skálázása bétaverzióban érhető el a következő régiókban: eastus2, , westeuropewestus.

A Lakebase Autoscaling a Lakebase legújabb verziója automatikus skálázási számítással, nullára skálázással, elágaztatással és azonnali visszaállítással. A Lakebase Provisioned szolgáltatással való összehasonlításához tekintse meg a verziók közötti választást.

Megtudhatja, hogyan állíthat be új felhasználót a Lakebase-projekthez és -adatbázishoz való hozzáféréssel. Ez az oktatóanyag a projektszintű engedélyeket (a Lakebase-erőforrások kezeléséhez) és az adatbázisszintű engedélyeket (az adatok Postgresen keresztüli eléréséhez) is ismerteti.

A két engedélyrendszer ismertetése

A Lakebase Postgres két engedélyréteget használ:

  1. Projektengedélyek (ACL-ek): Platformszintű műveletek vezérlése, például ágak létrehozása, számítások kezelése és projektbeállítások kezelése. Ezek kezelése a Lakebase alkalmazáson keresztül történik.

  2. Postgres szerepkör-engedélyek: Az adatbázison belüli adatokhoz való hozzáférés szabályozása. Ezek kezelése szabványos Postgres-parancsokkal történik GRANT .

Ezek a rendszerek nem rendelkeznek automatikus szinkronizálási szolgáltatásokkal. Ezeket az engedélyeket a szervezet igényeitől függően egymástól függetlenül vagy együtt is megadhatja:

  • Mindkét réteget biztosíthatja a platformhozzáférést és adatbázis-hozzáférést igénylő felhasználóknak.
  • Csak olyan felhasználóknak adjon projektengedélyeket, akik az infrastruktúrát kezelik, de nem kell adatokat lekérdezni.
  • Csak azoknak a felhasználóknak biztosítson adatbázis-hozzáférést, akiknek adatokat kell lekérdezniük, de nem kell kezelniük a Lakebase-erőforrásokat (például a kapcsolat részleteivel rendelkező eszközökkel psql csatlakozhatnak).

Ez az oktatóanyag bemutatja, hogyan állíthatja be mindkét hozzáférési réteget:

  • Projektengedélyek megadása, hogy a felhasználók a Lakebase platform erőforrásaival működhessenek (ez az oktatóanyag a CAN MANAGE-t használja a teljes hozzáféréshez, és a CAN USE-t csak megtekintésre és használatra is engedélyezheti)
  • Postgres-szerepkör létrehozása megfelelő adatbázis-jogosultságokkal az adatbázishoz való csatlakozáshoz és lekérdezéshez

Alapértelmezett engedélyek

A munkaterület minden felhasználója alapértelmezés szerint örökli a CAN CREATE engedélyt, amely lehetővé teszi a projektek megtekintését és létrehozását. Ha további hozzáférést szeretne biztosítani a projekt erőforrásaihoz és adatbázisaihoz, explicit módon kell hozzárendelnie a CAN USE vagy a CAN MANAGE parancsot.

Előfeltételek

  • Lakebase-projekt adatbázissal
  • Munkaterület-rendszergazda vagy CAN MANAGE engedély a projekten
  • A felhasználó Azure Databricks-identitása (e-mail-címe) ugyanabban a munkaterületen, ahol a projektet létrehozták

Forgatókönyv: Adatelemző hozzáadása olvasási-írási hozzáféréssel

Nézzük meg lépésről lépésre, hogyan adhatunk hozzá egy adatelemzőt, Alex Lopez aki a következőkre van szüksége:

  • Képesség ágak, számítógépek és adatbázisok létrehozására és kezelésére (KEZELHETŐ)
  • Táblák olvasása és írása a public Postgres-adatbázis sémájában
  • Új táblák létrehozása elemzéshez

1. lépés: Projektengedélyek megadása

Először adja meg a felhasználóNAK a MANAGE engedélyt, hogy végrehajthassa a projektfelügyeleti műveleteket.

  1. A projekthez navigáljon a Lakebase alkalmazásban.
  2. Kattintson a Bal oldali oldalsáv Beállítások gombjára .
  3. Görgessen a Project engedélyeinek szakaszához.
  4. Kattintson az Engedély megadása gombra.
  5. Keresse meg és jelölje ki a felhasználót.
  6. Válassza a CAN MANAGE engedélyt.
  7. Kattintson az Engedélyezés gombra.

A

Amit a CAN MANAGE lehetővé tesz:

  • Ágak létrehozása és törlése
  • Számítások kezelése és a projektbeállítások konfigurálása
  • Adatbázisok és Postgres-szerepkörök létrehozása és kezelése
  • Projektműveletek teljes felügyelete

Megjegyzés:

A CAN MANAGE teljes körű ellenőrzést biztosít a projekt felett, beleértve sok más műveletet is. A CAN USE lehetővé teszi az erőforrások teljes felügyelet nélküli megtekintését és használatát (lista, megtekintés, kapcsolati URI lekérése és bizonyos fiókműveletek). Az összes engedélyszint és az egyes műveletek teljes listáját a Lakebase-projekt ACL-jeiben találja.

2. lépés: Postgres-szerepkör létrehozása a felhasználó számára

Most hozzon létre egy OAuth-szerepkört, amely lehetővé teszi Alex számára az Azure Databricks-identitásuk OAuth-jogkivonatokkal való hitelesítését. Projekttulajdonosként ön rendelkezik a szerepkörök létrehozásához szükséges engedélyekkel.

  1. Nyissa meg a Lakebase SQL-szerkesztőt, és csatlakozzon a projekthez.

  2. Hozza létre a databricks_auth bővítményt (ha még nincs engedélyezve):

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  3. databricks_create_role A függvény használatával hozza létre Az OAuth Postgres szerepkört Alex számára:

    SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
    

Ez létrehoz egy OAuth-szerepkört, amely:

  • Ugyanaz a neve, mint az Azure Databricks-azonosítójuknak (alex.lopez@databricks.com)
  • Hitelesítés OAuth-jogkivonatokkal
  • BEJELENTKEZÉSI jogosultságokkal rendelkezik
  • Még nem rendelkezik adatbázis-engedélyekkel (ezeket a következő lépésben biztosítjuk)

Megjegyzés:

Az OAuth-szerepkörök ismertetése:

  • OAuth-szerepkörök időkorlátos tokenekkel hitelesítenek (egy órával később lejárnak)
  • A felhasználók tokenekhez jutnak a Lakebase alkalmazás kapcsolati párbeszédpanelje által.
  • Legjobb interaktív munkamenetekhez és munkaterület-integrált munkafolyamatokhoz
  • További információ: Tudnivalók a hitelesítésről

3. lépés: Postgres-adatbázisengedélyek megadása

Most adja meg Alexnek a szükséges adatbázis-engedélyeket. Olvasási-írási hozzáférést biztosítunk nekik a public sémához.

-- 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";

Ezek az engedélyek a következőket teszik lehetővé:

  • CONNECT: Csatlakozás az adatbázishoz
  • USAGE sémán: A sémán belüli objektumok elérése
  • CREATE sémán: Új táblák, nézetek, függvények létrehozása
  • SELECT, INSERT, UPDATE, DELETE táblákon: Adatok olvasása és írása
  • Sorozatengedélyek: Automatikusan növekvő oszlopok használata

4. lépés: A kapcsolat tesztelése

Alex ellenőrizze, hogy tudnak-e csatlakozni és hozzáférni az adatbázishoz.

A Lakebase SQL-szerkesztő használata:

  1. Alex megnyitja a Lakebase alkalmazást, és a projekthez navigál.

  2. Alex megnyitja a Lakebase SQL-szerkesztőt.

  3. Az SQL-szerkesztőben Alexnek képesnek kell lennie a következő lekérdezések futtatására az engedélyek ellenőrzéséhez:

    -- 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()
    );
    

Másik lehetőségként használja a psql-t:

Alex a következőhöz hasonló psqlkülső eszközökről is tud csatlakozni:

  1. A projekt irányítópultján kattintson a Csatlakozás gombra.
  2. Válassza ki az ágat, a számítást és az adatbázist.
  3. A Szerepkörök legördülő listában válassza a lehetőséget alex.lopez@databricks.com.
  4. Másolja ki a psql kapcsolati kódrészletet.
  5. A hitelesítési jogkivonat beszerzéséhez kattintson az OAuth-jogkivonat másolása elemre.
  6. Csatlakozzon a másolt psql paranccsal, és jelszó kérésekor adja meg az OAuth-jogkivonatot.
  7. Futtassa a fent bemutatott ellenőrzésre szánt lekérdezéseket.

Alternatív megoldás: Írásvédett adatbázis-hozzáférés

Azon felhasználók számára, akiknek csak módosítás nélkül kell lekérdezni az adatokat, adja meg ugyanazokat a projektengedélyeket, de szigorúbb adatbázis-engedélyeket használjon:

Projektengedélyek

A CAN USE engedélyezése csak megtekintési és használatalapú projekthozzáféréshez (pl. kapcsolati URI, listaágak). A CAN MANAGE engedélyezése adatbázisok, szerepkörök és egyéb projektműveletek létrehozásához.

Adatbázis-engedélyek

-- 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";

Ez engedélyez:

  • Olvasási hozzáférés az összes táblához
  • Adatbázis-struktúra megtekintése
  • Nem lehet módosítani az adatokat (nincs INSERT, UPDATE, DELETE)
  • Táblák vagy egyéb objektumok nem hozhatók létre

Csoportokkal és szolgáltatási objektumokkal való munka

Ugyanezt a folyamatot követve hozzáférést biztosíthat az Azure Databricks-csoportokhoz és szolgáltatásnevekhez. Projektengedélyek megadása a Lakebase alkalmazás felhasználói felületén keresztül, OAuth-szerepkörök létrehozása és databricks_create_role()adatbázis-engedélyek megadása. További információ: Csoportok és szolgáltatásnevek.

Natív Postgres-jelszószerepkörök használata

Az OAuth-szerepkörök alternatívaként natív Postgres-jelszószerepköröket hozhat létre olyan alkalmazásokhoz, amelyek nem tudják óránként frissíteni a jogkivonatokat, a hosszan futó folyamatokat vagy az OAuth-t nem támogató külső eszközöket. A jelszószerepkörök létrehozásával és kezelésével kapcsolatos utasításokért lásd: Postgres-szerepkörök kezelése.

Következő lépések