Questa pagina spiega come funziona il controllo dell'accesso granulare con modifiche in tempo reale di Spanner.
Per utenti con controllo dell'accesso granulare, puoi consentire l'accesso in lettura ai dati modifiche in tempo reale utilizzando le autorizzazioni seguenti. Sono richieste entrambe le sovvenzioni.
Concedi
SELECT
nel flusso di modifiche.GoogleSQL
GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE ROLE_NAME;
PostgreSQL
GRANT SELECT ON CHANGE STREAM CHANGE_STREAM_NAME TO ROLE_NAME;
Concedi
EXECUTE
per la funzione di lettura creata automaticamente per il flusso di modifiche. Puoi usare la funzione di lettura per leggere i record delle modifiche in tempo reale.GoogleSQL
GRANT EXECUTE ON TABLE FUNCTION READ_FUNCTION_NAME TO ROLE ROLE_NAME;
PostgreSQL
GRANT EXECUTE ON FUNCTION READ_FUNCTION_NAME TO ROLE_NAME;
Per informazioni sulle convenzioni di denominazione per le funzioni di lettura delle modifiche in tempo reale e sulla formattazione delle informazioni restituite, consulta i seguenti argomenti:
INFORMATION_SCHEMA
visualizzazioni per le modifiche in tempo reale
Le visualizzazioni seguenti mostrano informazioni sui ruoli e sui privilegi del database per i flussi di modifiche:
- Database dialetti SQL di Google:
INFORMATION_SCHEMA.CHANGE_STREAM_PRIVILEGES
- Database dialetti PostgreSQL:
information_schema.change_stream_privileges
Le righe in questa visualizzazione vengono filtrate in base ai privilegi del ruolo di database attuale sulle modifiche in tempo reale. In questo modo le entità possono visualizzare solo i ruoli, i privilegi e le modifiche in tempo reale a cui hanno accesso.
Il filtro delle righe si applica anche alle seguenti visualizzazioni correlate alle modifiche in tempo reale:
GoogleSQL
INFORMATION_SCHEMA.CHANGE_STREAMS
INFORMATION_SCHEMA.CHANGE_STREAM_TABLES
INFORMATION_SCHEMA.CHANGE_STREAM_COLUMNS
INFORMATION_SCHEMA.CHANGE_STREAM_OPTIONS
Il ruolo di sistema spanner_info_reader
e i suoi membri visualizzano sempre un INFORMATION_SCHEMA
non filtrato.
PostgreSQL
information_schema.change_streams
information_schema.change_stream_tables
information_schema.change_stream_columns
information_schema.change_stream_options
Il ruolo di sistema spanner_info_reader
e i suoi membri visualizzano una information_schema
non filtrata.
Il filtro delle righe si applica anche alle seguenti visualizzazioni dei metadati per le funzioni di lettura delle modifiche in tempo reale:
GoogleSQL
PostgreSQL
Precisazioni
Le modifiche in tempo reale utilizzano un database di metadati per mantenere lo stato interno. Il database dei metadati può essere uguale o diverso dal database dell'applicazione. Ti consigliamo di utilizzare un database diverso. Tuttavia, per gli utenti con controllo dell'accesso granulare, il database di metadati non può essere uguale al database dell'applicazione. Questo perché l'entità IAM che esegue il job Dataflow richiede l'accesso in lettura/scrittura a livello di database per il database di metadati. In questo modo vengono sostituiti i privilegi granulari di controllo dell'accesso dell'accesso configurati per il database dell'applicazione.
Per ulteriori informazioni, consulta la sezione Prendi in considerazione un database di metadati separato.
Poiché un flusso di modifiche contiene una copia separata dei dati delle tabelle e delle colonne monitorate, fai attenzione quando concedi agli utenti l'accesso al flusso di modifiche. I lettori del flusso di modifiche possono visualizzare le modifiche ai dati nelle tabelle e nelle colonne monitorate, anche se non dispongono dei privilegi
SELECT
nelle tabelle e nelle colonne. Sebbene sia più flessibile configurare controlli separati sui modifiche in tempo reale e sulle relative tabelle e colonne tracciate, esiste un potenziale rischio, quindi assicurati di strutturare i ruoli e i privilegi del database di conseguenza. Ad esempio, quando revochi il privilegioSELECT
per una tabella da un ruolo, valuta se revocare ancheSELECT
nel flusso di modifiche e revocareEXECUTE
per la funzione di lettura associata.Se concedi
SELECT
su un flusso di modifiche che monitora tutte le tabelle, il beneficiario potrà vedere le modifiche ai dati per tutte le tabelle aggiunte in futuro.
Ulteriori informazioni
- Informazioni sulle modifiche in tempo reale
- Creare e gestire le modifiche in tempo reale
- Informazioni sul controllo dell'accesso granulare