Questa pagina spiega come funziona il controllo dell'accesso granulare con Spanner. le modifiche in tempo reale.
Per gli utenti che hanno controllo dell'accesso granulare, consenti l'accesso in lettura per modifiche in tempo reale di dati. con le seguenti concessioni. Entrambe le concessioni sono obbligatorie.
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
nella funzione di lettura che viene attivata automaticamente per le modifiche in tempo reale. Puoi usare la funzione di lettura per leggere 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 seguenti visualizzazioni mostrano le informazioni sui ruoli e sui privilegi del database da modificare stream:
- Database di dialetti GoogleSQL:
INFORMATION_SCHEMA.CHANGE_STREAM_PRIVILEGES
- Database di dialetti PostgreSQL:
information_schema.change_stream_privileges
Le righe in questa vista vengono filtrate in base al ruolo del database attuale i privilegi sui modifiche in tempo reale. In questo modo le entità possono visualizzare solo ruoli, privilegi e modifiche in tempo reale a cui ha accesso.
Il filtro delle righe si applica anche alle seguenti viste 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
Per il ruolo di sistema spanner_info_reader
e i suoi membri viene sempre visualizzato un
INFORMATION_SCHEMA
.
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 un'immagine non filtrata
information_schema
.
I filtri delle righe si applicano anche alle seguenti visualizzazioni di metadati per le modifiche in tempo reale funzioni di lettura:
GoogleSQL
PostgreSQL
Precisazioni
Le modifiche in tempo reale utilizzano un database di metadati per mantenere lo stato interno. La può essere uguale o diverso dall'applicazione per configurare un database. Ti consigliamo di utilizzare un database diverso. Tuttavia, per per gli utenti con un controllo dell'accesso granulare, il database di metadati non può essere uguale all'applicazione per configurare un database. Questo perché l'entità IAM che esegue Il job Dataflow richiede l'accesso in lettura/scrittura a livello di database per o un database di metadati. In questo modo verranno sostituiti i privilegi granulari di controllo dell'accesso che configurate per il database dell'applicazione.
Per ulteriori informazioni, consulta l'articolo Valutare l'idea di utilizzare un database di metadati separato.
Poiché un flusso di modifiche contiene una copia separata dei dati da tabelle e colonne monitorate, presta attenzione quando concedi agli utenti l'accesso al di modifiche in tempo reale. I lettori del flusso di modifiche possono visualizzare le modifiche ai dati da le tabelle e le colonne monitorate, anche quando non hanno
SELECT
per le tabelle e le colonne. Sebbene sia più flessibile di configurare controlli separati sui modifiche in tempo reale e sulle relative tabelle monitorate colonne, c'è un rischio potenziale, quindi assicurati di strutturare il database i ruoli e i privilegi di conseguenza. Ad esempio, quando revochiSELECT
privilegio su una tabella da un ruolo, valuta se revocare ancheSELECT
nel flusso di modifiche e revocaEXECUTE
sulla lettura associata personalizzata.Se concedi l'autorizzazione
SELECT
su un flusso di modifiche che monitora tutte le tabelle, il beneficiario possono vedere le modifiche ai dati per 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