Gestire i ruoli

I ruoli Postgres controllano l'accesso ai database, agli schemi, alle tabelle e ad altri oggetti di database Postgres. Usare l'interfaccia utente di Lakebase per creare e gestire i ruoli per il team.

Annotazioni

Prima di usare i ruoli, vedere come connettersi al database ed eseguire l'autenticazione usando i token OAuth o l'autenticazione della password Postgres nativa.

Panoramica dei ruoli

Quando si crea un progetto, viene creato automaticamente un ruolo Postgres per l'identità di Databricks, ad esempio user@databricks.com. Questo ruolo è proprietario del database predefinito databricks_postgres ed è membro di databricks_superuser, concedendo privilegi generali per gestire gli oggetti di database. È possibile creare ruoli aggiuntivi nel ramo predefinito del progetto o nei rami figlio.

Se si gestisce il progetto con Terraform e si vuole portare questo ruolo di proprietario implicito nella gestione IaC, vedere Configurazione tipica del progetto Lakebase con Terraform per il replace_existing modello di adozione.

Se invece si usano bundle di automazione dichiarativa, vedere Configurazione tipica del progetto Lakebase con bundle di automazione dichiarativa per lo stesso modello.

Annotazioni

Lo stato del ruolo Postgres è indipendente tra i rami. Quando si crea un ramo, questo rispecchia i ruoli di Postgres, i database, le appartenenze ai ruoli e le autorizzazioni del ramo padre al momento della diramazione. Dopo la creazione dei rami, ciascun ramo si evolve in modo indipendente: i ruoli e i database creati, i GRANT e i REVOKE applicati e gli attributi o le appartenenze ai ruoli modificati in un ramo non hanno alcun effetto su nessun altro ramo, incluso il ramo padre. Non esiste alcuna sincronizzazione automatica dello stato del ruolo tra rami.

le autorizzazioni Project (CAN USE, CAN MANAGE) funzionano in modo diverso: si applicano all'intero project e a tutti i relativi rami. Vedere Gestire le autorizzazioni del progetto.

Creare un ruolo

Usare la finestra di dialogo Aggiungi ruolo nell'app Lakebase per creare un ruolo OAuth per un'identità Databricks o un ruolo password Postgres nativo.

Creare un ruolo OAuth

I ruoli OAuth sono collegati a un'identità di Azure Databricks (utente, principale del servizio o gruppo) ed eseguono l'autenticazione usando token OAuth, che scadono dopo un'ora.

Quando si crea un ramo figlio, esso riflette il ruolo e lo stato del database padre al momento della diramazione. Successivamente, lo stato del ruolo di ogni ramo si evolve in modo indipendente. Per i gruppi sono supportati solo i gruppi a livello di area di lavoro.

Facoltativamente, concedere databricks_superuser (eredita pg_read_all_data, pg_write_all_data, e pg_monitor) oppure attributi standard di Postgres (CREATEDB, CREATEROLE, BYPASSRLS). Vedere Attributi del ruolo nella documentazione di PostgreSQL.

Per creare un ruolo OAuth, passare alla scheda Ruoli e database>Aggiungi ruolo>OAuth , selezionare un'identità dall'elenco a discesa Entità , configurare le autorizzazioni e fare clic su Aggiungi.

Aggiungi ruolo - scheda OAuth

Annotazioni

È anche possibile creare ruoli OAuth usando l'estensione databricks_auth con SQL o l'API REST. Vedere Creare ruoli Postgres.

Creare un ruolo di gestione delle password

I ruoli password usano una password postgres statica e non sono collegati a un'identità di Azure Databricks. Sono utili per applicazioni o strumenti che richiedono credenziali di database tradizionali.

L'app Lakebase genera automaticamente una password sicura. Copiarlo immediatamente dopo la creazione. Non viene visualizzato di nuovo. Se è necessaria una password personalizzata, impostarla in un secondo momento usando SQL. Si applicano le stesse autorizzazioni facoltative del ruolo OAuth (databricks_superuser, CREATEDB, CREATEROLE, BYPASSRLS). I nomi dei ruoli devono essere identificatori Postgres validi e non possono superare i 63 caratteri.

Per creare un ruolo password, passarealla scheda>>, immettere un nome di ruolo, configurare le autorizzazioni, fare clic su Aggiungi e copiare la password generata.

Aggiungi ruolo — Scheda Password

Visualizza i ruoli

Per visualizzare tutti i ruoli in un ramo, passare alla scheda Ruoli e database del ramo nell'app Lakebase.

Elenco ruoli

Gestire le connessioni tramite password

Le connessioni password sono disabilitate per impostazione predefinita per i nuovi progetti di scalabilità automatica di Lakebase. I progetti esistenti non sono influenzati da questa impostazione predefinita.

Per abilitare le connessioni con password, passare al progetto Impostazioni>Connessioni database e selezionare Password (ruoli Postgres nativi).

Per disabilitare le connessioni con password, passare al progetto Impostazioni>Connessioni database e deselezionare Password (ruoli Postgres nativi). I ruoli password esistenti non vengono eliminati, ma non possono eseguire l'autenticazione mentre le connessioni password sono disabilitate.

È anche possibile controllare questo valore per ogni endpoint di calcolo. Nelle impostazioni di calcolo del ramo selezionare Modifica>connessioni database e selezionare o deselezionare Password (ruoli Postgres).

Impostazioni delle connessioni al database

Importante

Si tratta di una modifica del comportamento. Se sono presenti script di automazione o pipeline ci che creano nuovi progetti di scalabilità automatica di Lakebase e si basano su connessioni password Postgres native, è ora necessario abilitare in modo esplicito le connessioni password dopo la creazione del progetto.

Per abilitare o disabilitare le connessioni password a livello di codice:

CLI

# Enable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
  --json '{"spec": {"enable_pg_native_login": true}}'

# Disable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
  --json '{"spec": {"enable_pg_native_login": false}}'

PYTHON SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import FieldMask, Project, ProjectSpec

w = WorkspaceClient()

# Enable password connections
w.postgres.update_project(
    name="projects/<project-id>",
    project=Project(spec=ProjectSpec(enable_pg_native_login=True)),
    update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()

# Disable password connections
w.postgres.update_project(
    name="projects/<project-id>",
    project=Project(spec=ProjectSpec(enable_pg_native_login=False)),
    update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()

curva

# Enable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"spec": {"enable_pg_native_login": true}}' | jq

# Disable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"spec": {"enable_pg_native_login": false}}' | jq

Per l'autenticazione, vedere Informazioni sull'autenticazione.

Reimpostare una password

È possibile reimpostare la password per i ruoli password di Postgres nativi. I ruoli OAuth usano token OAuth per l'autenticazione e non hanno password da reimpostare.

Per reimpostare la password di un ruolo:

  1. Passare alla scheda Ruoli e database del ramo nell'app Lakebase.
  2. Selezionare Reimposta password dal menu del ruolo e fare clic su Reimposta.
  3. Copiare la nuova password generata.

Annotazioni

La reimpostazione di una password nell'app Lakebase reimposta la password su un valore generato con entropia a 60 bit. Per impostare il valore della password, è possibile reimpostare la password usando l'editor SQL o un client SQL come psql con la sintassi seguente:

ALTER USER user_name WITH PASSWORD 'new_password';

La password deve contenere almeno 12 caratteri con una combinazione di caratteri minuscoli, maiuscoli, numeri e simboli. Le password definite dall'utente vengono convalidate in fase di creazione per garantire l'entropia a 60 bit.

Ottenere un nuovo token OAuth

Se si usa l'autenticazione OAuth e si necessita di un nuovo token OAuth (i token scadono dopo un'ora), è possibile ottenerlo dalla modalità Connect:

  1. Naviga al tuo progetto nell'applicazione Lakebase.
  2. Cliccare su Connetti per aprire il modale di connessione al database.
  3. Selezionare il ruolo OAuth dall'elenco a discesa Ruoli .
  4. Fare clic su Copia token OAuth per copiare un nuovo token.

Altre informazioni: Connettersi con un ruolo OAuth | Informazioni sull'autenticazione

Eliminare un ruolo

Importante

L'eliminazione di un ruolo è un'azione permanente che non può essere annullata e non è possibile eliminare un ruolo proprietario di un database. Il database deve essere eliminato prima di eliminare il ruolo proprietario del database.

Per eliminare un ruolo:

  1. Passare alla scheda Ruoli e database del ramo nell'app Lakebase.
  2. Selezionare Elimina ruolo dal menu del ruolo e confermare l'eliminazione.

Annotazioni

La gestione dei ruoli del database richiede l'autorizzazione CAN MANAGE o CAN USEper il progetto. Se non si dispone dell'autorizzazione richiesta, viene visualizzato un messaggio "Autorizzazioni necessarie" quando si tenta un'azione correlata al ruolo. Contattare un amministratore dell'area di lavoro per richiedere l'accesso. Per altre informazioni, vedere Gestire le autorizzazioni del progetto.