Detaillierte Zugriffssteuerung für Änderungsstreams

Auf dieser Seite wird erläutert, wie die detaillierte Zugriffssteuerung mit Spanner funktioniert. Änderungsstreams.

Für Nutzer mit differenzierter Zugriffssteuerung gewähren Sie Lesezugriff auf Änderungsstreams-Daten mithilfe der folgenden Berechtigungen. Beide Berechtigungen sind erforderlich.

  • Gewähren Sie SELECT für den Änderungsstream.

    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;
    
  • Weisen Sie EXECUTE für die Lesefunktion zu, die automatisch erfolgt die für den Änderungsstream erstellt wurden. Mit der Funktion „read“ können Sie Änderungsstream-Eintragsdaten lesen.

    GoogleSQL

    GRANT EXECUTE ON TABLE FUNCTION READ_FUNCTION_NAME TO ROLE ROLE_NAME;
    

    PostgreSQL

    GRANT EXECUTE ON FUNCTION READ_FUNCTION_NAME TO ROLE_NAME;
    

    Informationen zu Benennungskonventionen für Lesefunktionen für Änderungsstreams und zur Formatierung der zurückgegebenen Informationen finden Sie in den folgenden Themen:

INFORMATION_SCHEMA Ansicht für Änderungsstreams

In den folgenden Ansichten sehen Sie Informationen zu Datenbankrollen und Berechtigungen für Änderungen Streams:

Die Zeilen in diesen Ansichten werden basierend auf den Berechtigungen der aktuellen Datenbankrolle für Änderungsstreams gefiltert. Dadurch wird sichergestellt, dass Hauptkonten nur die Berechtigungen und Änderungsstreams, auf die sie Zugriff haben.

Das Zeilenfiltern gilt auch für die folgenden Datenansichten, die sich auf Änderungsstreams beziehen:

GoogleSQL

Die Systemrolle spanner_info_reader und ihre Mitglieder sehen immer eine ungefilterte INFORMATION_SCHEMA.

PostgreSQL

Die Systemrolle spanner_info_reader und ihre Mitglieder sehen eine ungefilterte information_schema.

Das Zeilenfiltern gilt auch für die folgenden Metadatenansichten für Lesefunktionen von Änderungsstreams:

Vorsichtsmaßnahmen

  • Änderungsstreams verwenden eine Metadatendatenbank, um den internen Status aufrechtzuerhalten. Die Metadatendatenbank kann mit der Anwendung identisch oder davon abweichen Datenbank. Wir empfehlen, eine andere Datenbank zu verwenden. Für sehr fein abgestimmte Zugriffssteuerung. Die Metadatendatenbank darf nicht mit der Anwendung identisch sein. Datenbank. Das liegt daran, dass das IAM-Hauptkonto, das die Dataflow-Job benötigt Lese-/Schreibzugriff auf Datenbankebene für die Metadaten-Datenbank. Dies würde die detaillierten Berechtigungen für die Zugriffssteuerung überschreiben, für die Anwendungsdatenbank konfiguriert.

    Weitere Informationen finden Sie unter Separate Metadatendatenbank verwenden.

  • Da ein Änderungsstream eine separate Kopie der Daten aus den erfassten Tabellen und Spalten enthält, sollten Sie Nutzer mit Bedacht auf den Änderungsstream zugreifen lassen. Leser des Änderungsstreams können Datenänderungen aus den erfassten Tabellen und Spalten sehen, auch wenn sie keine SELECT-Berechtigungen für die Tabellen und Spalten haben. Es ist zwar flexibler, separate Steuerelemente für Änderungsstreams und ihre erfassten Tabellen und Spalten einzurichten, aber es besteht ein potenzielles Risiko. Achten Sie daher darauf, Datenbankrollen und ‑berechtigungen entsprechend zu strukturieren. Beispiel: Beim Widerrufen der SELECT Berechtigung für eine Tabelle von einer Rolle aus, überlegen Sie, ob auch SELECT widerrufen werden soll für den Änderungsstream und Widerrufen EXECUTE für den verknüpften Lesevorgang .

  • Wenn Sie SELECT für einen Änderungsstream gewähren, der alle Tabellen erfasst, Datenänderungen für alle zukünftig hinzugefügten Tabellen sehen.

Weitere Informationen