Zugriff auf einzelne Tabellen mit IAM steuern

In diesem Dokument erfahren Sie, wie Sie BigQuery IAM-Rollen (Identity and Access Management) für einzelne Dataform-Tabellen und -Ansichten.

Dataform und BigQuery verwenden IAM für die Zugriffssteuerung. Weitere Informationen zu Dataform-Rollen und Berechtigungen in IAM, siehe Zugriff mit IAM steuern

Wenn Dataform eine Tabelle oder Ansicht ausführt, wird die Ressource in BigQuery Bei der Entwicklung in Dataform können Sie BigQuery-Rollen für einzelne Tabellen und Ansichten zur Steuerung des Zugriffs nach der Ausführung in BigQuery.

Weitere Informationen zum Gewähren und Entziehen von Zugriff auf Ressourcen finden Sie unter Zugriff auf eine Ressource gewähren

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. BigQuery and Dataform APIs aktivieren.

    Aktivieren Sie die APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. BigQuery and Dataform APIs aktivieren.

    Aktivieren Sie die APIs

BigQuery-Rollen für eine Tabelle oder Ansicht gewähren

Sie können einer Tabelle oder Ansicht in Dataform BigQuery-Rollen zuweisen, indem Sie Hinzufügen eines post_operations-Blocks mit die DCL-Anweisung GRANT zur Definitionsdatei .sqlx der ausgewählten Tabelle oder Ansicht hinzu.

So weisen Sie einer ausgewählten Tabelle oder Ansicht BigQuery-Rollen zu:

  1. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zur Seite „Dataform“

  2. Wählen Sie ein Repository und dann einen Arbeitsbereich aus.

  3. Maximieren Sie im Bereich Dateien definitions/.

  4. .sqlx-Definitionsdatei der Tabelle oder Ansicht auswählen auf die Sie Zugriff gewähren möchten.

  5. Geben Sie in die Datei das folgende Code-Snippet ein:

    post_operations {
        GRANT "ROLE_LIST"
        ON "RESOURCE_TYPE" ${self()}
        TO "USER_LIST"
    }
    

    Ersetzen Sie Folgendes:

    • ROLE_LIST: die BigQuery-Rolle oder Liste mit durch Kommas getrennten Werten BigQuery-Rollen, die Sie gewähren möchten.

    • RESOURCE_TYPE: TABLE oder VIEW.

    • USER_LIST: die durch Kommas getrennte Liste der Nutzer, die Rolle zugewiesen wird.

      Eine Liste der gültigen Formate finden Sie unter user_list:

  6. Optional: Klicken Sie auf Format.

  7. Führen Sie die Tabelle oder Ansicht aus.

  8. Wenn Sie einer inkrementellen Tabelle Zugriff gewährt haben, entfernen Sie die GRANT-Anweisung nach der ersten Ausführung aus der Tabellendefinitionsdatei.

Im folgenden Codebeispiel wird der BigQuery-Viewer Rolle, die einem Nutzer für eine Tabelle zugewiesen wurde:

config { type: "table" }

SELECT ...

post_operations {
  GRANT `roles/bigquery.dataViewer`
  ON TABLE ${self()}
  TO "user:222larabrown@gmail.com"
}

BigQuery-Rollen für eine Tabelle oder Ansicht widerrufen

Sie können BigQuery-Rollen für eine Tabelle oder Ansicht widerrufen, indem Sie eine post_operations-Block mit der DCL-Anweisung REVOKE zur Definitionsdatei .sqlx der ausgewählten Tabelle oder Ansicht hinzu.

So widerrufen Sie BigQuery-Rollen für eine ausgewählte Tabelle oder Ansicht:

  1. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zur Seite „Dataform“

  2. Wählen Sie ein Repository und dann einen Arbeitsbereich aus.

  3. Maximieren Sie im Bereich Dateien definitions/.

  4. .sqlx-Definitionsdatei der Tabelle oder Ansicht auswählen dem Sie den Zugriff entziehen möchten.

  5. Geben Sie im Block post_operations die folgende REVOKE-Anweisung ein:

        REVOKE "ROLE_LIST"
        ON "RESOURCE_TYPE" ${self()}
        TO "USER_LIST"
    

    Ersetzen Sie Folgendes:

    • ROLE_LIST: die BigQuery-Rolle oder Liste mit durch Kommas getrennten Werten BigQuery-Rollen, die Sie widerrufen möchten.
    • RESOURCE_TYPE: TABLE oder VIEW.
    • USER_LIST: die durch Kommas getrennte Liste der Nutzer, die -Rolle wurde widerrufen. Eine Liste der gültigen Formate finden Sie unter user_list:
  6. Um den in einer GRANT-Anweisung in der Datei gewährten Zugriff zu widerrufen, ersetzen Sie den GRANT-Anweisung mit einer REVOKE-Anweisung.

    Removing the `GRANT` statement without adding the `REVOKE` statement
    does not revoke access.
    
  7. Optional: Klicken Sie auf Format.

  8. Führen Sie die Tabelle oder Ansicht aus.

  9. Wenn Sie den Zugriff auf eine inkrementelle Tabelle widerrufen haben, entfernen Sie die REVOKE-Anweisung nach der ersten Ausführung aus der Tabellendefinitionsdatei.

Im folgenden Codebeispiel wird der BigQuery-Viewer einem Nutzer für eine Tabelle widerrufene Rolle:

config { type: "table" }

SELECT ...

post_operations {
  REVOKE `roles/bigquery.dataViewer`
  ON TABLE ${self()}
  FROM "user:222larabrown@gmail.com"
}

BigQuery-Rollen für Tabellen und Ansichten gemeinsam verwalten

Um den BigQuery-Zugriff auf einzelne Tabellen und Ansichten in einem einzigen können Sie eine eigene type: "operations"-Datei mit GRANT und REVOKE DCL-Anweisungen.

Um den Zugriff auf BigQuery-Tabelle in einer einzigen type: "operations"-Datei zu verwalten, führen Sie folgende Schritte aus:

  1. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zur Seite „Dataform“

  2. Wählen Sie ein Repository und dann einen Arbeitsbereich aus.

  3. Klicken Sie im Bereich Dateien neben definitions/ auf das Symbol Mehr aus.

  4. Klicken Sie auf Datei erstellen.

  5. Geben Sie im Feld Dateipfad hinzufügen den Namen der Datei gefolgt von .sqlx nach definitions/. Beispiel: definitions/table-access.sqlx

    Dateinamen dürfen nur Ziffern, Buchstaben, Bindestriche und Unterstriche enthalten.

  6. Klicken Sie auf Datei erstellen.

  7. Maximieren Sie im Bereich Dateien das Verzeichnis definitions/ und wählen Sie den Ordner neu erstellte Datei.

  8. Geben Sie in die Datei das folgende Code-Snippet ein:

      config { type: "operations" }
    
      GRANT "ROLE_LIST"
      ON RESOURCE_TYPE RESOURCE_NAME
      TO "USER_LIST"
    
      REVOKE "ROLE_LIST"
      ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME
      TO "USER_LIST"
    

    Ersetzen Sie Folgendes:

    • ROLE_LIST: die BigQuery-Rolle oder Liste mit durch Kommas getrennten Werten BigQuery-Rollen, die Sie gewähren oder widerrufen möchten.
    • RESOURCE_TYPE: TABLE oder VIEW.
    • RESOURCE_NAME: der Name der Tabelle oder Ansicht.
    • USER_LIST: die durch Kommas getrennte Liste der Nutzer, die Rolle gewährt oder widerrufen wurde. Eine Liste der gültigen Formate finden Sie unter user_list:
  9. Fügen Sie nach Bedarf GRANT- und REVOKE-Anweisungen hinzu.

    1. Um den in einer GRANT-Anweisung in der Datei gewährten Zugriff zu widerrufen, ersetzen Sie den GRANT-Anweisung mit einer REVOKE-Anweisung.

      GRANT-Anweisung entfernen, ohne die REVOKE-Anweisung hinzuzufügen hebt den Zugriff nicht auf.

  10. Optional: Klicken Sie auf Format.

  11. Führen Sie die Datei nach jedem Update aus.

    1. Wenn Sie den Zugriff auf eine inkrementelle Tabelle gewährt oder widerrufen haben, entfernen Sie den GRANT oder REVOKE-Anweisung aus der Datei nach der ersten Ausführung der Anweisung.

Nächste Schritte