Megosztás:


Postgres-szerepkörök létrehozása

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.

Projekt létrehozásakor a Lakebase több Postgres-szerepkört hoz létre a projektben:

  • Postgres-szerepkör a projekttulajdonos Azure Databricks-identitásához (például user@databricks.com), amely az alapértelmezett databricks_postgres adatbázis tulajdonosa
  • Rendszergazdai databricks_superuser szerepkör

A databricks_postgres rendszer létrehozza az adatbázist, így közvetlenül a projekt létrehozása után csatlakozhat, és kipróbálhatja a Lakebase-et.

Számos rendszer által felügyelt szerepkör is létrejön. Ezeket a belső szerepköröket az Azure Databricks-szolgáltatások használják felügyelethez, monitorozáshoz és adatműveletekhez.

Megjegyzés:

A Postgres-szerepkörök szabályozzák az adatbázis-hozzáférést (ki kérdezhet le adatokat). A projektengedélyek (akik kezelhetik az infrastruktúrát) a Projekt engedélyei című témakörben olvashatók. A mindkettő beállításával kapcsolatos oktatóanyagért tekintse meg az oktatóanyagot: Projekt- és adatbázis-hozzáférés biztosítása új felhasználónak.

Lásd : Előre létrehozott szerepkörök és rendszerszerepkörök.

Postgres-szerepkörök létrehozása

A Lakebase kétféle Postgres-szerepkört támogat az adatbázis-hozzáféréshez:

  • OAuth-szerepkörök az Azure Databricks-identitásokhoz: Ezeket a bővítmény és az databricks_auth SQL használatával hozhatja létre. Lehetővé teszi, hogy az Azure Databricks-identitások (felhasználók, szolgáltatásnevek és csoportok) OAuth-jogkivonatokkal csatlakozzanak.
  • Natív Postgres-jelszószerepkörök: Ezeket a Lakebase felhasználói felületével vagy SQL-ével hozhatja létre. Használjon bármilyen érvényes szerepkörnevet jelszóhitelesítéssel.

A használni kívánt szerepkör típusának kiválasztásával kapcsolatos útmutatásért tekintse meg a hitelesítés áttekintését. Mindegyik különböző használati esetekhez van kialakítva.

OAuth-szerepkör létrehozása Azure Databricks-identitáshoz SQL használatával

Ahhoz, hogy az Azure Databricks-identitások (felhasználók, szolgáltatásnevek vagy csoportok) OAuth-jogkivonatokkal csatlakozhassanak, létre kell hoznia a Postgres-szerepköreiket a databricks_auth bővítmény használatával. Egy csoporthoz tartozó szerepkör létrehozása lehetővé teszi, hogy a csoporttagok a csoportszerepkör használatával hitelesítsék magukat, egyszerűsítve az engedélykezelést.

Az OAuth-jogkivonatok felhasználóról gépre és gépről gépre történő beszerzésére vonatkozó részletes útmutatásért lásd: OAuth-jogkivonat beszerzése egy felhasználó–gép folyamatban , és OAuth-jogkivonat beszerzése gépről gépre folyamatba a hitelesítési dokumentációban.

Előfeltételek:

  • Rendelkeznie kell CREATE és CREATE ROLE engedéllyel az adatbázison
  • Azure Databricks-identitásként kell hitelesítenie magát érvényes OAuth tokennel.
  • Natív Postgres-hitelesített munkamenetek nem hozhatnak létre OAuth-szerepköröket

OAuth-szerepkör létrehozása:

  1. Hozza létre a bővítményt databricks_auth . Minden Postgres-adatbázisnak saját kiterjesztéssel kell rendelkeznie.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. databricks_create_role A függvény használatával hozzon létre egy Postgres-szerepkört az Azure Databricks-identitáshoz:

    SELECT databricks_create_role('identity_name', 'identity_type');
    

    Azure Databricks-felhasználó esetén:

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

    Azure Databricks szolgáltatásfő esetén:

    SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');
    

    Azure Databricks-csoport esetén:

    SELECT databricks_create_role('My Group Name', 'GROUP');
    

    A csoportnév megkülönbözteti a kis- és nagybetűket, és pontosan meg kell egyeznie az Azure Databricks-munkaterületen megjelenő névvel. Amikor létrehoz egy Postgres-szerepkört egy csoporthoz, az adott Databricks-csoport bármely közvetlen vagy közvetett tagja (felhasználó vagy szolgáltatásnév) hitelesítheti a Postgres-et csoportszerepkörként az egyéni OAuth-jogkivonatával. Ez lehetővé teszi, hogy a Postgres csoportszintjén kezelje az engedélyeket az egyes felhasználók engedélyei helyett.

  3. Adjon adatbázis-engedélyeket az újonnan létrehozott szerepkörnek.

A databricks_create_role() függvény csak engedéllyel hoz létre Postgres-szerepkört LOGIN . A szerepkör létrehozása után meg kell adnia a megfelelő adatbázis-jogosultságokat és engedélyeket az adott adatbázisokhoz, sémákhoz vagy táblákhoz, amelyekhez a felhasználónak hozzá kell férnie. Útmutató: Engedélyek kezelése

Csoportalapú hitelesítés

Amikor Postgres-szerepkört hoz létre egy Azure Databricks-csoporthoz, engedélyezi a csoportalapú hitelesítést. Ez lehetővé teszi, hogy az Azure Databricks-csoport bármely tagja hitelesítse magát a Postgresben a csoport szerepkörével, egyszerűsítve az engedélykezelést.

Hogyan működik:

  1. Hozzon létre egy Postgres-szerepkört egy Databricks-csoporthoz databricks_create_role('Group Name', 'GROUP') használatával.
  2. Adjon adatbázis-engedélyeket a csoportszerepkörnek a Postgresben. Lásd: Engedélyek kezelése.
  3. A Databricks-csoport bármely közvetlen vagy közvetett tagja (felhasználó vagy szolgáltatásnév) csatlakozhat a Postgreshez az egyéni OAuth-jogkivonatával.
  4. Csatlakozáskor a tag csoportszerepkörként hitelesíti magát, és örökli az adott szerepkörhöz adott összes engedélyt.

Hitelesítési folyamat:

Amikor egy csoporttag csatlakozik, a csoport Postgres-szerepkörének nevét adja meg felhasználónévként, a saját OAuth-jogkivonatát pedig jelszóként:

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

Fontos szempontok:

  • Csoporttagság ellenőrzése: A csoporttagság érvényesítése csak hitelesítési időpontban történik. Ha a rendszer eltávolít egy tagot az Azure Databricks-csoportból a kapcsolat létrehozása után, a kapcsolat aktív marad. A rendszer elutasítja az eltávolított tagok új csatlakozási kísérleteit.
  • Munkaterület hatóköre: A csoportalapú hitelesítés csak a projekthez tartozó Azure Databricks-munkaterülethez rendelt csoportokat támogatja. A csoportok munkaterülethez rendeléséről a Csoportok kezelése című témakörben olvashat.
  • Kis- és nagybetűk érzékenysége: A databricks_create_role() használata során a csoportnévnek pontosan meg kell egyeznie az Azure Databricks-munkaterületen megjelenő csoportnévvel, beleértve a kis- és nagybetűket is.
  • Engedélykezelés: A Postgres csoportszintű engedélyeinek kezelése hatékonyabb, mint az egyéni felhasználói engedélyek kezelése. Amikor engedélyeket ad a csoportszerepkörnek, az összes jelenlegi és jövőbeli csoporttag automatikusan örökli ezeket az engedélyeket.

Megjegyzés:

A szerepkörnevek nem haladhatják meg a 63 karaktert, és egyes nevek nem engedélyezettek. További információ: Szerepkörök kezelése

Natív Postgres-jelszószerepkör létrehozása

Natív Postgres-jelszószerepköröket a Lakebase felhasználói felületén vagy a standard SQL-parancsokkal hozhat létre.

A felhasználói felület használata:

  1. A Lakebase alkalmazásban lépjen az ág áttekintési lapjára, majd az ág Szerepkörök & adatbázisok lapjára.
  2. Kattintson a Szerepkör hozzáadása gombra, és adjon meg egy szerepkörnevet (bármely érvényes Postgres-szerepkörnevet).

Postgres-szerepkör hozzáadása

  1. Kattintson a Létrehozás gombra.
  2. Másolja ki a létrehozott jelszót, és adja meg biztonságosan a szerepkört használó felhasználónak.

A Lakebase felhasználói felülete 60 bites entrópiával automatikusan létrehoz egy biztonságos jelszót. A felhasználói felületen létrehozott szerepkörök automatikusan tagságot kapnak a databricks_superuser szerepkörben, amely széles körű adatbázis-jogosultságokat biztosít.

Az SQL használata:

Natív Postgres-jelszószerepköröket is létrehozhat szabványos Postgres SQL-parancsokkal:

CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';

Az SQL-szerepkörök létrehozásakor a jelszónak legalább 12 karakterből kell állnia, kisbetűk, nagybetűk, számok és szimbólumkarakterek kombinációjával. A felhasználó által megadott jelszavakat a rendszer a létrehozáskor érvényesíti a 60 bites entrópia biztosítása érdekében.

Postgres-szerepkörök megtekintése

UI

A projekt összes Postgres-szerepkörének megtekintéséhez lépjen az ág Szerepkörök & adatbázisok lapjára a Lakebase alkalmazásban. A rendszerszerepkörök kivételével az ágban létrehozott összes szerepkör szerepel a listán, beleértve a jelszóhitelesítéssel rendelkező natív Postgres-szerepköröket is.

Postgres-szerepkör megtekintése

PostgreSQL

Az összes szerepkör megtekintése paranccsal \du :

Bármely Postgres-ügyfél (például ) vagy a Lakebase SQL-szerkesztő metaparancsával megtekintheti az összes Postgres-szerepkört, beleértve a \dupsql is:

\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

Ez megjeleníti az összes szerepkört és attribútumukat (Superuser, Create role, Create DB stb.).

Postgres-szerepkör törlése

A Databricks identitásalapú és a natív Postgres-jelszószerepköröket is elvetheti.

UI

A szerepkörök törlése olyan állandó művelet, amelyet nem lehet visszavonni. Nem törölhet olyan szerepkört, amely egy adatbázis tulajdonosa. Az adatbázist törölni kell, mielőtt törölnénk az adatbázist tulajdonoló szerepkört.

Bármely Postgres-szerepkör törlése a felhasználói felületen:

  1. Lépjen az ág Szerepkörök és adatbázisok lapjára a Lakebase-alkalmazásban.
  2. Válassza a Szerepkör törlése lehetőséget a szerepkör menüjében, és erősítse meg a törlést.

PostgreSQL

Bármely Postgres-szerepkört elvethet szabványos Postgres-parancsokkal. További részletekért tekintse meg a Szerepkörök elvetéséről szóló PostgreSQL-dokumentációt.

Szerepkör eltávolítása:

DROP ROLE role_name;

Miután elvetett egy Azure Databricks-identitásalapú szerepkört, az identitás nem hitelesíthető a Postgresben OAuth-jogkivonatokkal, amíg új szerepkört nem hoz létre.

Előre létrehozott szerepkörök

A projekt létrehozása után az Azure Databricks automatikusan létrehozza a Postgres-szerepköröket a projektfelügyelethez és az első lépésekhez.

Role Description Örökölt jogosultságok
<project_owner_role> A projekt létrehozójának Azure Databricks-identitása (például my.user@databricks.com). Ez a szerepkör az alapértelmezett databricks_postgres adatbázis tulajdonosa, és bejelentkezhet és felügyelheti a projektet. A databricks_superuser
databricks_superuser Belső rendszergazdai szerepkör. A projekten belüli hozzáférés konfigurálására és kezelésére szolgál. Ez a szerepkör széles körű jogosultságokkal rendelkezik. Örökli a pg_read_all_data, pg_write_all_data és pg_monitor osztályoktól.

További információ a szerepkörök konkrét képességeiről és jogosultságairól: Előre létrehozott szerepkör-képességek

Az Azure Databricks által létrehozott rendszerszerepkörök

Az Azure Databricks a belső szolgáltatásokhoz szükséges következő rendszerszerepköröket hozza létre. Ezeket a szerepköröket úgy tekintheti meg, ha kiad egy \du parancsot a psql.

Role Cél
cloud_admin Felhőinfrastruktúra-kezeléshez használt superuser szerepkör
databricks_control_plane A belső Databricks-összetevők által a felügyeleti műveletekhez használt superuser szerepkör
databricks_monitor A belső metrika gyűjtési szolgáltatások használják
databricks_replicator Adatbázis-replikációs műveletekhez használatos
databricks_writer_<dbid> Szinkronizált táblák létrehozásához és kezeléséhez használt adatbázisonkénti szerepkör
databricks_reader_<dbid> Adatbázisonkénti szerepkör a Unity-katalógusban regisztrált táblák olvasásához
databricks_gateway A felügyelt adatszolgáltatási szolgáltatások belső kapcsolataihoz használatos

A szerepkörök, jogosultságok és szerepkör-tagságok működéséről a Postgres dokumentációjában az alábbi forrásokból tájékozódhat:

Következő lépések