Vytvoření rolí Postgres

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_postgres databázi
  • Administrativní role databricks_superuser

Obě tyto role jsou viditelné na kartě Role a databáze při prvním otevření projektu.

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í uživatelského rozhraní Lakebase, databricks_auth rozšíření pomocí SQL nebo sady Python SDK a rozhraní REST API. 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, SQL nebo sady Python SDK a rozhraní REST API. 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 identity Azure Databricks

Pokud chcete identitám Azure Databricks (uživatelům, instančním objektům nebo skupinám) umožnit připojení pomocí tokenů OAuth, vytvořte roli OAuth pomocí uživatelského rozhraní Lakebase, databricks_auth rozšíření s SQL nebo rozhraním REST API.

Podrobné pokyny k získání tokenů OAuth najdete v tématu Získání tokenu OAuth v toku uživatele na stroj a Získání tokenu OAuth v toku stroj na stroj.

uživatelské rozhraní

  1. Na kartě Role a databáze>Přidat roli>OAuth vyberte uživatele, service principal nebo skupinu, ke které chcete udělit přístup k databázi.
  2. Po vytvoření role udělte příslušná oprávnění k databázi. Další informace: Správa oprávnění

Přidat roli – karta OAuth

SQL

Požadavky:

  • Musíte mít k databázi oprávnění CREATE a CREATE 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.
  1. databricks_auth Vytvořte rozšíření. Každá databáze Postgres musí mít vlastní rozšíření.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. databricks_create_role Pomocí 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. Tento model oprávnění na úrovni skupiny umožňuje spravovat oprávnění v Postgresu místo udržování oprávnění pro jednotlivé uživatele.

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

Python SDK

Nastavit identity_type na USER, SERVICE_PRINCIPALnebo GROUP. Nastavte postgres_role e-mailovou adresu identity, ID aplikace (UUID) nebo zobrazovaný název skupiny. Tato hodnota se stane názvem role Postgres a je to, co používáte v připojovacích řetězcích a GRANT příkazech.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Role, RoleIdentityType, RoleRoleSpec

w = WorkspaceClient()

operation = w.postgres.create_role(
    parent="projects/my-project/branches/production",
    role=Role(
        spec=RoleRoleSpec(
            identity_type=RoleIdentityType.USER,
            postgres_role="user@example.com"
        )
    )
)
role = operation.wait()
print(f"Created role: {role.name}")

Po vytvoření role udělte příslušná oprávnění k databázi. Další informace: Správa oprávnění

CLI

Nastavit identity_type na USER, SERVICE_PRINCIPALnebo GROUP. Nastavte postgres_role e-mailovou adresu identity, ID aplikace (UUID) nebo zobrazovaný název skupiny. Tato hodnota se stane názvem role Postgres a je to, co používáte v připojovacích řetězcích a GRANT příkazech.

Pro uživatele Azure Databricks:

databricks postgres create-role projects/my-project/branches/production \
  --role-id my-user-role \
  --json '{"spec": {"identity_type": "USER", "postgres_role": "user@example.com"}}'

Objekt zabezpečení Azure Databricks:

databricks postgres create-role projects/my-project/branches/production \
  --role-id my-sp-role \
  --json '{"spec": {"identity_type": "SERVICE_PRINCIPAL", "postgres_role": "8c01cfb1-62c9-4a09-88a8-e195f4b01b08"}}'

Pro skupinu Azure Databricks:

databricks postgres create-role projects/my-project/branches/production \
  --role-id my-group-role \
  --json '{"spec": {"identity_type": "GROUP", "postgres_role": "My Group Name"}}'

Příkaz čeká na dokončení operace a vrátí vytvořenou roli. Použijte --no-wait k okamžitému návratu a dotazování samostatně s databricks postgres get-operation.

Po vytvoření role udělte příslušná oprávnění k databázi. Další informace: Správa oprávnění

kroucení

Nastavit identity_type na USER, SERVICE_PRINCIPALnebo GROUP. Nastavte postgres_role e-mailovou adresu identity, ID aplikace (UUID) nebo zobrazovaný název skupiny. Tato hodnota se stane názvem role Postgres a je to, co používáte v připojovacích řetězcích a GRANT příkazech.

curl -X POST "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/roles" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "spec": {
      "identity_type": "USER",
      "postgres_role": "user@example.com"
    }
  }' | jq

Koncový bod vrátí výsledek dlouhotrvající operace. Opakovaně kontrolujte, dokud done nebude true, poté použijte pole role name pro následná volání API. Viz dlouhotrvající operace.

Po vytvoření role udělte příslušná oprávnění k databázi. 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:

  1. Vytvořte roli Postgres pro skupinu Azure Databricks.
  2. Udělte oprávnění k databázi skupinové roli v PostgreSQL. Viz Správa oprávnění.
  3. Jakýkoli přímý nebo nepřímý člen (uživatel nebo instanční objekt) skupiny Azure Databricks se může připojit k Postgres pomocí jejich individuálního tokenu OAuth.
  4. Při připojování se člen ověří jako role ve skupině a dědí všechna oprávnění, která jste této roli udělili.

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.
  • Přejmenování identity: Pokud se v Azure Databricks změní e-mail uživatele nebo zobrazované jméno skupiny, ověření a stávající přístupy k databázím se přeruší. Odstraňte starou roli, vytvořte novou s aktualizovaným názvem a aktualizujte připojovací řetězce a granty.

Poznámka:

Názvy rolí nesmí překročit 63 znaků a některé názvy nejsou povolené. Další informace: Správa rolí

Vytvořte nativní roli hesla v Postgresu

Připojení hesel je možné zakázat na úrovni projektu nebo výpočetních prostředků. Viz Blokovat připojení hesel.

uživatelské rozhraní

  1. Na kartě Role a databáze> Přidat roli> zadejte název role a volitelně udělte nebo systémové atributy (databricks_superuser, CREATEDB, CREATEROLE).
  2. Zkopírujte vygenerované heslo a bezpečně ho poskytněte uživateli. Znovu se nezobrazí.

Přidání role – záložka Heslo

SQL

CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';

Heslo musí mít minimálně 12 znaků s kombinací malých písmen, velkých písmen, čísel a symbolů. Uživatelem definovaná hesla se ověřují při vytváření a ověřují se 60bitová entropie.

Python SDK

Vynechat identity_type pro vytvoření role hesla. Operace create_role vrací Role objekt bez pole pro heslo. SDK nevrací vygenerované heslo. Pro získání použitelného hesla viz Jak získat heslo.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Role, RoleRoleSpec

w = WorkspaceClient()

operation = w.postgres.create_role(
    parent="projects/my-project/branches/production",
    role=Role(
        spec=RoleRoleSpec(
            postgres_role="my-app-role"
        )
    )
)
role = operation.wait()
print(f"Created role: {role.name}")

CLI

Vynechat identity_type pro vytvoření role hesla. Příkaz vrací Role objekt bez pole hesla. CLI nevrací vygenerované heslo. Pro získání použitelného hesla viz Jak získat heslo.

databricks postgres create-role projects/my-project/branches/production \
  --role-id my-app-role \
  --json '{"spec": {"postgres_role": "my-app-role"}}'

Příkaz čeká na dokončení operace a vrátí vytvořenou roli.

kroucení

Vynechat identity_type pro vytvoření role hesla. Koncový bod vrátí výsledek dlouhotrvající operace. Dotazujte se, dokud není donetrue. Výsledkem operace je Role objekt bez pole hesla. API nevrací vygenerované heslo. Pro získání použitelného hesla viz Jak získat heslo.

curl -X POST "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/roles" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "spec": {
      "postgres_role": "my-app-role"
    }
  }' | jq

Poznámka:

Nativní role hesel Postgres podporují integrovaný nástroj pro sdružování připojení. Viz Použití sdružování připojení.

Jak získat heslo

Operace vytváření rolí v Python SDK, REST API a CLI nevrací vygenerované heslo. Použijte jednu z následujících metod k získání hesla pro nativní roli v Postgresu:

  • Nastavte si vlastní heslo při vytvoření pomocí SQL: Spusťte CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password'; na OAuth SQL připojení. To vyžaduje CREATEROLE privilegium. Podívejte se na záložku SQL pod Vytvořit nativní roli hesla v Postgresu.
  • Resetujte heslo v uživatelském rozhraní: Pro roli vytvořenou pomocí Python SDK, REST API, CLI nebo Terraform použijte tok Resetovat heslo v aplikaci Lakebase k vytvoření nového hesla. Viz Resetovat heslo.

Poznámka:

Role vytvořené pomocí Python SDK, REST API nebo Terraformu jsou vlastněny interní řídicí rovinou. Zákaznické role nemohou pomocí SQL měnit hesla těchto rolí, protože Postgres 16 vyžaduje, aby role měla možnost ADMIN pro změnu svého hesla. Místo toho použijte v uživatelském rozhraní postup Reset password.

Jak se ukládají nativní role hesel

Ať už nativní heslovou roli v systému Postgres vytvoříte jakkoli, její heslo se nikdy neukládá v podobě prostého textu. Jádro Postgresu výpočetního uzlu ukládá verifikátor SCRAM-SHA-256, vypočtený na straně serveru (výchozí hodnota pro výpočetní uzel je password_encryption = scram-sha-256). Když Lakebase vygeneruje heslo za vás (UI, cesty Python SDK, REST API a CLI), řídicí rovina si také uchovává kopii přihlašovacích údajů šifrovanou KMS, což umožňuje UI heslo zobrazit nebo později resetovat. Hesla nastavená v SQL se tímto způsobem neuchovávají: ukládá se pouze ověřovač.

  • UI: Azure Databricks generuje heslo na straně serveru, počítá ověřovatele a zobrazí vygenerované heslo jednou. Zkopírujte to tedy, protože se to už nezobrazí.
  • Python SDK, REST API a CLI: Azure Databricks generuje heslo na serverové straně a počítá ověřovatele, ale heslo v odpovědi nevrací. Pro získání použitelného hesla použijte SQL při vytvoření nebo postup resetování hesla v UI. Podívejte se na Jak získat heslo. Tyto cesty nepřijímají zadané heslo.
  • SQL: Při spuštění CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password'; (nebo psql's \password) zadáte heslo v prostém textu a server jej zahashuje do podoby verifieru.

Heslo nikdy nemusíte hashovat sami.

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í. Sloupec typ ověřování označuje, jestli každá role používá ověřování OAuth nebo heslo.

Seznam rolí

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

Python SDK

Výpis všech rolí:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

roles = w.postgres.list_roles(parent="projects/my-project/branches/production")
for role in roles:
    print(f"{role.status.postgres_role} ({role.status.identity_type or 'PASSWORD'}): {role.name}")

Získání konkrétní role:

role = w.postgres.get_role(
    name="projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx"
)
print(role)

CLI

Výpis všech rolí:

databricks postgres list-roles projects/my-project/branches/production

Získání konkrétní role:

databricks postgres get-role projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx

Výstup obsahuje name pole (například rol-xxxx-xxxxxxxxxx) požadované pro volání aktualizace a odstranění.

kroucení

Výpis všech rolí:

curl -X GET "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/roles" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq

Získání konkrétní role:

curl -X GET "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq

Odpověď obsahuje name pole (například rol-xxxx-xxxxxxxxxx) vyžadované pro volání aktualizace a odstranění.

Aktualizace role

Pokud chcete aktualizovat atributy role v uživatelském rozhraní, vyberte v nabídce role na kartě Role a Databáze možnost Upravit roli.

K aktualizaci systémových rolí nebo atributů role použijte rozhraní API nebo rozhraní příkazového řádku. Změní se pouze pole zadaná v masce aktualizace.

Poznámka:

Pokud chcete získat název prostředku role pro použití v aktualizačních a mazacích voláních, použijte koncový bod seznam rolí. Názvy prostředků role používají systémový identifikátor (například rol-xxxx-xxxxxxxxxx), nikoli hodnotu zadanou postgres_role při vytváření.

CLI

Aktualizujte roli pomocí vzoru masky pro aktualizaci. Maska aktualizace je druhým pozičním argumentem za názvem prostředku.

Při aktualizaci spec.attributesje nutné zadat všechna tři pole atributů (createdb, createrole, bypassrls) – rozhraní API nahradí celý objekt atributů:

databricks postgres update-role \
  projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx \
  "spec.attributes" \
  --json '{
    "spec": {
      "attributes": {"createdb": true, "createrole": false, "bypassrls": false}
    }
  }'

Pokud chcete aktualizovat také role členství, přidejte spec.membership_roles do masky aktualizace:

databricks postgres update-role \
  projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx \
  "spec.membership_roles" \
  --json '{"spec": {"membership_roles": ["DATABRICKS_SUPERUSER"]}}'

Chcete-li odebrat databricks_superuser, předejte prázdné pole: "membership_roles": [].

kroucení

curl -X PATCH "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx?update_mask=spec.membership_roles%2Cspec.attributes.createdb" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx",
    "spec": {
      "membership_roles": ["DATABRICKS_SUPERUSER"],
      "attributes": { "createdb": true }
    }
  }' | jq

Chcete-li odebrat databricks_superuser, předejte prázdné pole: "membership_roles": [].

Vyřazení role Postgres

Můžete odstranit jak role založené na identitě Azure Databricks, tak vestavěné role hesel Postgres.

uživatelské rozhraní

  1. V aplikaci Lakebase přejděte na kartu Role a databáze vaší větve.

  2. Klikněte na nabídku pro roli, kterou chcete odstranit, a vyberte Drop.

  3. V potvrzovacím dialogu můžete volitelně povolit možnost Znovu přiřadit vlastněné objekty.

    Roli Postgres nelze vynechat, pokud vlastní databázové objekty, jako jsou tabulky, zobrazení nebo schémata. Když je tato možnost povolena, zobrazí se rozbalovací seznam Znovu přiřadit vlastníkovi. Vyberte roli, která převezme vlastnictví objektů před jejich upuštěním. Objekty, které nelze přeřadit, například oprávnění udělená rušené roli, se po dokončení přeřazení automaticky odstraní. Je-li tato možnost zakázána, odstranění se nezdaří, pokud role vlastní nějaké objekty.

  4. Klikněte na tlačítko Potvrdit.

Odstranění role je trvalé a nelze jej vrátit zpět.

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.

CLI

databricks postgres delete-role \
  projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx

Pokud role vlastní databázové objekty, použijte --reassign-owned-to před odstraněním vlastnictví k převodu vlastnictví na jinou roli:

databricks postgres delete-role \
  projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx \
  --reassign-owned-to projects/my-project/branches/production/roles/rol-yyyy-yyyyyyyyyy

Python SDK

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

operation = w.postgres.delete_role(
    name="projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx"
)
operation.wait()

kroucení

curl -X DELETE "$WORKSPACE/api/2.0/postgres/projects/my-project/branches/production/roles/rol-xxxx-xxxxxxxxxx" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq

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:

Další zdroje informací