Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
La scalabilità automatica di Lakebase si trova in Beta nelle aree seguenti: eastus2, westeurope, westus.
Lakebase Autoscaling è la versione più recente di Lakebase con calcolo autoscalante, riduzione a zero, ramificazione e ripristino istantaneo. Per il confronto delle funzionalità con Lakebase Provisioned, vedere scegliere tra le versioni.
Quando si crea un progetto, Lakebase crea diversi ruoli Postgres nel progetto:
- Ruolo Postgres per l'identità di Azure Databricks del proprietario del progetto ,ad esempio
user@databricks.com, proprietario del database predefinitodatabricks_postgres - Un
databricks_superuserruolo amministrativo
Il databricks_postgres database viene creato in modo da potersi connettere e provare Lakebase immediatamente dopo la creazione del progetto.
Vengono creati anche diversi ruoli gestiti dal sistema. Questi sono ruoli interni usati dai servizi di Azure Databricks per operazioni di gestione, monitoraggio e dati.
Annotazioni
I ruoli Postgres controllano l'accesso al database (chi può eseguire query sui dati). Per le autorizzazioni del progetto (che possono gestire l'infrastruttura), vedere Autorizzazioni di progetto. Per un'esercitazione sulla configurazione di entrambi, vedere Esercitazione: Concedere l'accesso al progetto e al database a un nuovo utente.
Vedere Ruoli pre-creati e Ruoli di sistema.
Creare ruoli Postgres
Lakebase supporta due tipi di ruoli Postgres per l'accesso al database:
-
Ruoli OAuth per le identità di Azure Databricks: Crearli usando l'estensione
databricks_authe SQL. Consente alle identità di Azure Databricks (utenti, entità servizio e gruppi) di connettersi usando token OAuth. - Ruoli password Postgres nativi: Crearli usando l'interfaccia utente di Lakebase o SQL. Usare qualsiasi nome di ruolo valido con l'autenticazione della password.
Per indicazioni sulla scelta del tipo di ruolo da usare, vedere Panoramica dell'autenticazione. Ognuno di essi è progettato per casi d'uso diversi.
Creare un ruolo OAuth per un'identità di Azure Databricks usando SQL
Per consentire alle identità di Azure Databricks (utenti, entità servizio o gruppi) di connettersi usando i token OAuth, è necessario creare i ruoli Postgres usando l'estensione databricks_auth . La creazione di un ruolo per un gruppo consente a tutti i membri del gruppo di eseguire l'autenticazione usando il ruolo del gruppo, semplificando la gestione delle autorizzazioni.
Per istruzioni dettagliate su come ottenere token OAuth nei flussi da utente a computer e da computer a computer, vedere Ottenere un token OAuth in un flusso da utente a computer e Ottenere un token OAuth in un flusso da computer a computer nella documentazione sull'autenticazione.
Prerequisiti:
- Devi disporre delle autorizzazioni
CREATEeCREATE ROLEsul database. - È necessario essere autenticati come identità di Azure Databricks con un token OAuth valido
- Le sessioni autenticate native di Postgres non possono creare ruoli OAuth
Per creare un ruolo OAuth:
Creare l'estensione
databricks_auth. Ogni database Postgres deve avere una propria estensione.CREATE EXTENSION IF NOT EXISTS databricks_auth;Usare la
databricks_create_rolefunzione per creare un ruolo Postgres per l'identità di Azure Databricks:SELECT databricks_create_role('identity_name', 'identity_type');Per un utente di Azure Databricks:
SELECT databricks_create_role('myuser@databricks.com', 'USER');Per un principale del servizio di Azure Databricks:
SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');Per un gruppo di Azure Databricks:
SELECT databricks_create_role('My Group Name', 'GROUP');Il nome del gruppo fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente come appare nell'area di lavoro di Azure Databricks. Quando si crea un ruolo Postgres per un gruppo, qualsiasi membro diretto o indiretto (utente o entità servizio) di tale gruppo di Databricks può eseguire l'autenticazione in Postgres come ruolo del gruppo usando il proprio token OAuth individuale. In questo modo è possibile gestire le autorizzazioni a livello di gruppo in Postgres anziché mantenere le autorizzazioni per i singoli utenti.
Concedere le autorizzazioni del database al ruolo appena creato.
La databricks_create_role() funzione crea un ruolo Postgres con solo l'autorizzazione LOGIN. Dopo aver creato il ruolo, è necessario concedere i privilegi e le autorizzazioni del database appropriati per database, schemi o tabelle specifici a cui l'utente deve accedere. Informazioni su come: Gestire le autorizzazioni
Autenticazione basata su gruppo
Quando si crea un ruolo Postgres per un gruppo di Azure Databricks, si abilita l'autenticazione basata su gruppo. Ciò consente a qualsiasi membro del gruppo di Azure Databricks di eseguire l'autenticazione in Postgres usando il ruolo del gruppo, semplificando la gestione delle autorizzazioni.
Funzionamento:
- Creare un ruolo Postgres per un gruppo di Databricks usando
databricks_create_role('Group Name', 'GROUP'). - Concedi le autorizzazioni del database al ruolo di gruppo in Postgres. Vedere Gestire le autorizzazioni.
- Qualsiasi membro diretto o indiretto (utente o entità servizio) del gruppo Databricks può connettersi a Postgres usando il proprio singolo token OAuth.
- Durante la connessione, il membro esegue l'autenticazione come ruolo del gruppo ed eredita tutte le autorizzazioni concesse a tale ruolo.
Flusso di autenticazione:
Quando un membro del gruppo si connette, specifica il nome del ruolo Postgres del gruppo come nome utente e il proprio token OAuth come password:
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
Considerazioni importanti:
- Convalida dell'appartenenza al gruppo: L'appartenenza al gruppo viene convalidata solo in fase di autenticazione. Se un membro viene rimosso dal gruppo Azure Databricks dopo aver stabilito una connessione, la connessione rimane attiva. I nuovi tentativi di connessione dai membri rimossi vengono rifiutati.
- Ambito dell'area di lavoro: Solo i gruppi assegnati alla stessa area di lavoro di Azure Databricks del progetto sono supportati per l'autenticazione basata su gruppo. Per informazioni su come assegnare gruppi a un'area di lavoro, vedere Gestire i gruppi.
-
Distinzione tra maiuscole e minuscole: Il nome del gruppo usato in
databricks_create_role()deve corrispondere esattamente al nome del gruppo come appare nell'area di lavoro di Azure Databricks, incluso il caso. - Gestione delle autorizzazioni: La gestione delle autorizzazioni a livello di gruppo in Postgres è più efficiente rispetto alla gestione delle singole autorizzazioni utente. Quando si concedono autorizzazioni al ruolo del gruppo, tutti i membri del gruppo corrente e futuro ereditano automaticamente tali autorizzazioni.
Annotazioni
I nomi dei ruoli non possono superare i 63 caratteri e alcuni nomi non sono consentiti. Altre informazioni: Gestire i ruoli
Creare un ruolo nativo con password di Postgres
È possibile creare ruoli password Postgres nativi usando l'interfaccia utente di Lakebase o i comandi SQL standard.
Uso dell'interfaccia utente:
- Nell'app Lakebase passare alla pagina di panoramica del ramo e quindi alla scheda Ruoli e database del ramo.
- Fare clic su Aggiungi ruolo e specificare un nome di ruolo (qualsiasi nome di ruolo Postgres valido).
- Clicca su Crea.
- Copiare la password generata e specificarla in modo sicuro all'utente che userà questo ruolo.
L'interfaccia utente di Lakebase genera automaticamente una password sicura con entropia a 60 bit. Ai ruoli creati tramite l'interfaccia utente viene concessa automaticamente l'appartenenza al databricks_superuser ruolo, che fornisce privilegi di database generali.
Uso di SQL:
È anche possibile creare ruoli password Postgres nativi usando i comandi STANDARD di Postgres SQL:
CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';
Quando si creano ruoli con SQL, la password deve avere 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.
Visualizzare i ruoli di Postgres
INTERFACCIA UTENTE
Per visualizzare tutti i ruoli Postgres nel progetto, passare alla scheda Ruoli e database del ramo nell'app Lakebase. Tutti i ruoli creati nel ramo, ad eccezione dei ruoli di sistema, sono elencati, inclusi i ruoli postgre nativi con l'autenticazione con password.
PostgreSQL
Visualizzare tutti i ruoli con \du il comando :
È possibile visualizzare tutti i ruoli postgres, inclusi i ruoli di sistema, usando il \du metacomcome da qualsiasi client Postgres (ad esempio psql) o dall'editor SQL di 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
Vengono visualizzati tutti i ruoli e i relativi attributi (Utente con privilegi avanzati, Crea ruolo, Crea database e così via).
Eliminare un ruolo Postgres
È possibile eliminare sia i ruoli basati sull'identità di Databricks che i ruoli password nativi di Postgres.
INTERFACCIA UTENTE
L'eliminazione di un ruolo è un'azione permanente che non può essere annullata. Non è possibile eliminare un ruolo proprietario di un database. Il database deve essere eliminato prima di eliminare il ruolo proprietario del database.
Per eliminare qualsiasi ruolo Postgres usando l'interfaccia utente:
- Passare alla scheda Ruoli e database del ramo nell'app Lakebase.
- Selezionare Elimina ruolo dal menu del ruolo e confermare l'eliminazione.
PostgreSQL
È possibile eliminare qualsiasi ruolo Postgres usando i comandi Postgres standard. Per informazioni dettagliate, vedere la documentazione di PostgreSQL sull'eliminazione dei ruoli.
Eliminare un ruolo:
DROP ROLE role_name;
Dopo l'eliminazione di un ruolo basato sull'identità di Azure Databricks, tale identità non può più eseguire l'autenticazione a Postgres usando token OAuth fino a quando non viene creato un nuovo ruolo.
Ruoli creati in modo preliminare
Dopo aver creato un progetto, Azure Databricks crea automaticamente i ruoli Postgres per l'amministrazione del progetto e per iniziare.
| Ruolo | Description | Privilegi ereditati |
|---|---|---|
<project_owner_role> |
Identità di Azure Databricks dell'autore del progetto , ad esempio my.user@databricks.com. Questo ruolo è proprietario del database predefinito databricks_postgres e può accedere e amministrare il progetto. |
Membro di databricks_superuser |
databricks_superuser |
Ruolo amministrativo interno. Usato per configurare e gestire l'accesso nel progetto. A questo ruolo vengono concessi privilegi generali. | Eredita da pg_read_all_data, pg_write_all_data, e pg_monitor. |
Scopri di più sulle funzionalità e i privilegi specifici di questi ruoli: funzionalità del ruolo predefinite
Ruoli di sistema creati da Azure Databricks
Azure Databricks crea i ruoli di sistema seguenti necessari per i servizi interni. È possibile visualizzare questi ruoli eseguendo un \du comando da psql o l'editor SQL di Lakebase.
| Ruolo | Scopo |
|---|---|
cloud_admin |
Ruolo utente con privilegi avanzati usato per la gestione dell'infrastruttura cloud |
databricks_control_plane |
Ruolo utente con privilegi avanzati usati dai componenti interni di Databricks per le operazioni di gestione |
databricks_monitor |
Usato dai servizi di raccolta delle metriche interne |
databricks_replicator |
Usato per le operazioni di replica del database |
databricks_writer_<dbid> |
Ruolo per database usato per creare e gestire tabelle sincronizzate |
databricks_reader_<dbid> |
Ruolo per database usato per leggere le tabelle registrate nel Catalogo Unity |
databricks_gateway |
Usato per le connessioni interne per i servizi di gestione dei dati gestiti |
Per informazioni sul funzionamento di ruoli, privilegi e appartenenze ai ruoli in Postgres, usare le risorse seguenti nella documentazione di Postgres: