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.
Informazioni su come configurare un nuovo utente con accesso al progetto e al database Lakebase. Questa esercitazione illustra sia le autorizzazioni a livello di progetto (per la gestione delle risorse Lakebase) che le autorizzazioni a livello di database (per l'accesso ai dati tramite Postgres).
Informazioni sui due sistemi di autorizzazione
Lakebase Postgres usa due livelli di autorizzazioni:
Autorizzazioni progetto (ACL): controlla le azioni a livello di piattaforma, ad esempio la creazione di rami, la gestione dei calcoli e la gestione delle impostazioni del progetto. Questi vengono gestiti tramite l'app Lakebase.
Autorizzazioni del ruolo Postgres: controllare l'accesso ai dati all'interno del database stesso. Questi vengono gestiti tramite comandi Postgres
GRANTstandard.
Questi sistemi non dispongono di sincronizzazione automatica. È possibile concedere queste autorizzazioni in modo indipendente o insieme, a seconda dei requisiti dell'organizzazione:
- Concedere entrambi i livelli agli utenti che necessitano dell'accesso alla piattaforma e dell'accesso al database.
- Concedere solo le autorizzazioni di progetto agli utenti che gestiscono l'infrastruttura, ma non devono eseguire query sui dati.
- Concedere solo l'accesso al database agli utenti che devono eseguire query sui dati, ma non devono gestire le risorse di Lakebase (possono connettersi usando strumenti come
psqlcon i dettagli della connessione).
Questa esercitazione illustra come configurare entrambi i livelli di accesso:
- Concedere le autorizzazioni del progetto in modo che gli utenti possano usare le risorse della piattaforma Lakebase (questa esercitazione usa CAN MANAGE per l'accesso completo)
- Creare un ruolo Postgres con privilegi di database appropriati per la connessione e l'esecuzione di query sul database
Autorizzazioni predefinite
Tutti gli utenti dell'area di lavoro ereditano l'autorizzazione CAN CREATE per impostazione predefinita, che consente la visualizzazione e la creazione di progetti. Per concedere l'accesso aggiuntivo alle risorse e ai database del progetto, è necessario assegnare in modo esplicito autorizzazioni aggiuntive.
Prerequisiti
- Un progetto Lakebase con un database
- Autorizzazione di amministratore dell'area di lavoro o CAN MANAGE per il progetto
- Identità di Azure Databricks dell'utente (indirizzo di posta elettronica) nella stessa area di lavoro in cui è stato creato il progetto
Scenario: aggiungere un analista di dati con accesso in lettura/scrittura
Si esaminerà ora l'aggiunta di un analista di dati denominato Alex Lopez che ha bisogno di:
- Possibilità di creare e gestire rami, calcoli e database (CAN MANAGE)
- Accesso in lettura e scrittura alle tabelle nello schema
publicdel tuo database Postgres - Possibilità di creare nuove tabelle per l'analisi
Passaggio 1: Concedere le autorizzazioni di progetto
Prima di tutto, concedere all'utente l'autorizzazione CAN MANAGE in modo che possa eseguire azioni di gestione dei progetti.
- Naviga al tuo progetto nell'app Lakebase.
- Fare clic su Impostazioni nella barra laterale sinistra.
- Scorrere fino alla sezione Autorizzazioni progetto .
- Fare clic su Concedi autorizzazione.
- Cercare e selezionare l'utente.
- Selezionare l'autorizzazione CAN MANAGE.
- Fare clic su "Concedi".
Ciò che CAN MANAGE consente:
- Creare ed eliminare rami
- Gestire i calcoli e configurare le impostazioni del progetto
- Creare e gestire database e ruoli Postgres
- Controllo completo sulle operazioni del progetto
Annotazioni
CAN MANAGE concede il controllo completo sul progetto, incluse molte altre azioni. Per un elenco completo di tutti i livelli di autorizzazione e delle azioni specifiche consentite, vedere ACL del progetto Lakebase.
Passaggio 2: Creare un ruolo Postgres per l'utente
Creare ora un ruolo OAuth che consenta ad Alex di eseguire l'autenticazione usando l'identità di Azure Databricks con token OAuth. Il proprietario del progetto ha le autorizzazioni necessarie per creare ruoli.
Aprire l'editor SQL di Lakebase e connettersi al progetto.
Creare l'estensione
databricks_auth(se non è già abilitata):CREATE EXTENSION IF NOT EXISTS databricks_auth;Usare la
databricks_create_rolefunzione per creare il ruolo OAuth Postgres per Alex:SELECT databricks_create_role('alex.lopez@databricks.com', 'USER');
Verrà creato un ruolo OAuth che:
- Ha lo stesso nome dell'identità di Azure Databricks (
alex.lopez@databricks.com) - Può eseguire l'autenticazione usando token OAuth
- Dispone di privilegi DI ACCESSO
- Non dispone ancora di autorizzazioni per il database (verranno concesse le autorizzazioni seguenti)
Annotazioni
Informazioni sui ruoli OAuth:
- I ruoli OAuth eseguono l'autenticazione usando token con limitazioni di tempo (scadono dopo 1 ora)
- Gli utenti ottengono i token dalla finestra di dialogo di connessione di Lakebase App
- Ideale per sessioni interattive e flussi di lavoro integrati nell'area di lavoro
- Per altre informazioni, vedere Informazioni sull'autenticazione
Passaggio 3: Concedere le autorizzazioni del database Postgres
Concedere ora ad Alex le autorizzazioni del database necessarie. Daremo loro l'accesso in lettura/scrittura allo schema public.
-- 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";
Quali sono le autorizzazioni consentite:
-
CONNECT: connettersi al database -
USAGEnello schema: accedere agli oggetti all'interno dello schema -
CREATEin schema: Creare nuove tabelle, viste, funzioni -
SELECT, INSERT, UPDATE, DELETEnelle tabelle: Leggere e scrivere dati - Autorizzazioni di sequenza: usare colonne con incremento automatico
Passaggio 4: Testare la connessione
Chiedere a Alex di verificare che sia possibile connettersi e accedere al database.
Uso dell'editor SQL di Lakebase:
Alex apre l'app Lakebase e passa al progetto.
Alex apre l'editor SQL di Lakebase.
Nell'editor SQL, Alex deve essere in grado di eseguire le query seguenti per verificare le autorizzazioni:
-- 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() );
In alternativa, usando psql:
Alex può anche connettersi da strumenti esterni come psql:
- Nel dashboard del progetto fare clic su Connetti.
- Selezionare il ramo, il calcolo e il database.
- Nell'elenco a discesa Ruoli selezionare
alex.lopez@databricks.com. - Copiare il
psqlframmento di connessione. - Fare clic su Copy OAuth Token (Copia token OAuth ) per ottenere un token di autenticazione.
- Connettersi usando il comando copiato
psqle immettere il token OAuth quando viene richiesta la password. - Eseguire le stesse query di verifica illustrate in precedenza.
Alternativa: accesso al database di sola lettura
Per gli utenti che devono solo eseguire query sui dati senza modificarli, concedere le stesse autorizzazioni di progetto, ma usare autorizzazioni di database più restrittive:
Autorizzazioni progetto
Concedere CAN MANAGE per consentire la creazione di database, ruoli e altre operazioni di progetto.
Autorizzazioni per il database
-- 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";
Questo concede:
- Accesso in lettura a tutte le tabelle
- Visualizzare la struttura del database
- Impossibile modificare i dati (senza INSERT, UPDATE, DELETE)
- Impossibile creare tabelle o altri oggetti
Uso di gruppi e principali del servizio
È possibile seguire la stessa procedura per concedere l'accesso a gruppi e entità servizio di Azure Databricks. Concedere le autorizzazioni di progetto tramite l'interfaccia utente dell'app Lakebase, creare ruoli OAuth usando databricks_create_role()e concedere le autorizzazioni del database. Per altre informazioni, vedere Gruppi e principali del servizio.
Uso dei ruoli password di Postgres nativi
In alternativa ai ruoli OAuth, è possibile creare ruoli password Postgres nativi per le applicazioni che non possono aggiornare i token ogni ora, processi a esecuzione prolungata o strumenti esterni che non supportano OAuth. Per istruzioni sulla creazione e la gestione dei ruoli delle password, vedere Gestire i ruoli di Postgres.