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 gewähren und widerrufen.

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

Wenn Dataform eine Tabelle oder Ansicht ausführt, wird die Ressource in BigQuery erstellt. Während der Entwicklung in Dataform können Sie einzelnen Tabellen und Ansichten BigQuery-Rollen zuweisen, um den Zugriff in BigQuery nach der Ausführung zu steuern.

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. Dazu fügen Sie der Definitionsdatei .sqlx der ausgewählten Tabelle oder Ansicht einen post_operations-Block mit der DCL-Anweisung GRANT 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. Erweitern Sie im Bereich Dateien das Verzeichnis definitions/.

  4. Wählen Sie die Definitionsdatei .sqlx der Tabelle oder Ansicht aus, 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 die Liste der durch Kommas getrennten BigQuery-Rollen, die Sie gewähren möchten.

    • RESOURCE_TYPE: TABLE oder VIEW.

    • USER_LIST: die durch Kommas getrennte Liste der Nutzer, denen die Rolle gewährt wurde.

      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 nach der ersten Ausführung die Anweisung GRANT aus der Tabellendefinitionsdatei.

Das folgende Codebeispiel zeigt, wie einem Nutzer die Rolle BigQuery-Betrachter für eine Tabelle zugewiesen wird:

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 einer Tabelle oder Ansicht widerrufen. Dazu fügen Sie der Definitionsdatei .sqlx der ausgewählten Tabelle oder Ansicht einen post_operations-Block mit der DCL-Anweisung REVOKE 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. Erweitern Sie im Bereich Dateien das Verzeichnis definitions/.

  4. Wählen Sie die Definitionsdatei .sqlx der Tabelle oder Ansicht aus, für die Sie den Zugriff widerrufen 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 die Liste der durch Kommas getrennten BigQuery-Rollen, die Sie widerrufen möchten.
    • RESOURCE_TYPE: TABLE oder VIEW.
    • USER_LIST: die durch Kommas getrennte Liste der Nutzer, denen die Rolle entzogen wurde. Eine Liste der gültigen Formate finden Sie unter user_list.
  6. Wenn Sie den in einer GRANT-Anweisung in der Datei gewährten Zugriff widerrufen möchten, ersetzen Sie die GRANT-Anweisung durch eine 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 nach der ersten Ausführung die Anweisung REVOKE aus der Tabellendefinitionsdatei.

Das folgende Codebeispiel zeigt, wie einem Nutzer für eine Tabelle die Rolle BigQuery-Betrachter entzogen wurde:

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

Wenn Sie den BigQuery-Zugriff auf einzelne Tabellen und Ansichten an einem einzigen Speicherort steuern möchten, können Sie eine dedizierte type: "operations"-Datei mit DCL-Anweisungen GRANT und REVOKE erstellen.

So verwalten Sie den Zugriff auf BigQuery-Tabelle in einer einzelnen type: "operations"-Datei:

  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 -Menü Mehr.

  4. Klicken Sie auf Datei erstellen.

  5. Geben Sie im Feld Add a file path (Dateipfad hinzufügen) den Namen der Datei gefolgt von .sqlx nach definitions/ ein. 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 Files (Dateien) das Verzeichnis definitions/ und wählen Sie die neu erstellte Datei aus.

  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 die Liste der durch Kommas getrennten 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, denen die Rolle gewährt oder für die sie 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. Wenn Sie den in einer GRANT-Anweisung in der Datei gewährten Zugriff widerrufen möchten, ersetzen Sie die GRANT-Anweisung durch eine REVOKE-Anweisung.

      Der Zugriff wird nicht widerrufen, wenn die Anweisung GRANT ohne Hinzufügen der Anweisung REVOKE entfernt wird.

  10. Optional: Klicken Sie auf Format.

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

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

Nächste Schritte