Konfigurieren der Zugriffssteuerung

Unter diesem Thema wird beschrieben, wie Sie in Ihrem Konto die Sicherheit der Zugriffssteuerung für sicherungsfähige Objekte konfigurieren.

Unter diesem Thema:

Kontoadministration

Festlegen zusätzlicher Benutzer als Kontoadministratoren

Standardmäßig hat jedes Konto einen Benutzer, der als Kontoadministrator festgelegt wurde (d. h. der Benutzer hat die systemdefinierte ACCOUNTADMIN-Rolle erhalten). Wir empfehlen, mindestens einen weiteren Benutzer als Kontoadministrator zu bestimmen. Auf diese Weise wird sichergestellt, dass Ihr Konto immer mindestens einen Benutzer hat, der Aufgaben auf Kontoebene ausführen kann, insbesondere wenn sich einer Ihrer Kontoadministratoren nicht anmelden kann.

Für diese zusätzlichen Kontoadministratoren können Sie wählen, ob Sie neue Benutzer anlegen oder bestehende Benutzer benennen möchten. Achten Sie aber darauf, Folgendes anzugeben:

  • Weisen Sie den Benutzern die ACCOUNTADMIN-Rolle zu, aber legen Sie diese Rolle nicht als Standard fest. Legen Sie stattdessen eine untergeordnete administrative Rolle (z. B. SYSADMIN) oder eine kundenspezifische Rolle als Standardrolle fest. Dadurch wird verhindert, dass Kontoadministratoren versehentlich die ACCOUNTADMIN-Rolle zum Erstellen von Objekten verwenden.

  • Stellen Sie sicher, dass für jeden Benutzer eine E-Mail-Adresse angegeben ist (erforderlich für die mehrstufige Authentifizierung).

Weisen Sie beispielsweise einem vorhandenen Benutzer mit dem Namen user2 die Rollen ACCOUNTADMIN und SYSADMIN zu, und geben Sie SYSADMIN als Standardrolle an:

GRANT ROLE ACCOUNTADMIN, SYSADMIN TO USER user2;

ALTER USER user2 SET EMAIL='user2@domain.com', DEFAULT_ROLE=SYSADMIN;
Copy

Aktivieren von MFA für jeden Kontoadministrator

Um die höchste Sicherheitsstufe für Ihr Snowflake-Konto sicherzustellen, empfehlen wir dringend, dass jeder Benutzer, der sensible Daten ändern oder anzeigen kann, zur Anmeldung die mehrstufige Authentifizierung (MFA) verwenden muss.

Diese Empfehlung gilt insbesondere für Benutzer mit der Rolle ACCOUNTADMIN, kann aber auch auf Benutzer mit den Rollen SECURITYADMIN und SYSADMIN ausgedehnt werden.

Weitere Details dazu finden Sie unter Hinweise zur Zugriffssteuerung und Mehrstufige Authentifizierung (MFA).

Erstellen von kundenspezifischen Rollen

Um das allgemeinen Prinzip der „niedrigsten Berechtigung“ zu befolgen, empfehlen wir das Erstellen von kundenspezifischen Rollen, die sich an den Geschäftsfunktionen Ihres Unternehmens orientieren, um SQL-Aktionen nur auf einer begrenzten Menge von sicherungsfähigen Objekten zuzulassen.

Der Workflow ist wie folgt:

  1. Erstellen Sie eine kundenspezifische Rolle.

  2. Erteilen Sie der Rolle die erforderlichen Berechtigungen.

  3. Weisen Sie die Rolle einem oder mehreren Benutzern zu, die die Berechtigungen benötigen, die der Rolle erteilt wurden, damit diese Benutzer SQL-Aktionen für ihre geschäftlichen Anforderungen ausführen können.

  4. Weisen Sie die Rolle einer anderen Rolle zu, um eine Rollenhierarchie zu erstellen oder zu erweitern. Dieser Schritt ist zwar nicht erforderlich, wird aber dringend empfohlen. Weitere Informationen dazu finden Sie unter Erstellen einer Rollenhierarchie (unter diesem Thema).

Dieser Abschnitt bietet eine Anleitung zum Erstellen einer Rolle mit dem Namen r1 und zum Zuweisen der folgenden Berechtigungen zu dieser Rolle. Mit diesen Berechtigungen kann ein Benutzer, der die Rolle in einer Sitzung aktiviert, eine einzelne Tabelle wie d1.s1.t1 abfragen:

Berechtigung

Objekt

Anmerkungen

USAGE

Warehouse w1

Datenbank d1

Schema s1

Um ein Objekt (z. B. eine Tabelle oder eine Ansicht) abzufragen, muss eine Rolle die USAGE-Berechtigung für ein Warehouse haben. Das Warehouse stellt die Computeressourcen für die Ausführung der Abfrage bereit.

Um beliebige Objekte in einem Schema verwenden zu können, muss eine Rolle auch die USAGE-Berechtigung für Datenbank und Schema des Containers haben.

SELECT

Tabellen-t1

Nachdem eine Rolle erstellt wurde, können ihr zusätzliche Berechtigungen erteilt werden, damit Benutzer mit dieser Rolle zusätzliche SQL-Aktionen auf demselben oder auf zusätzlichen Objekten ausführen können.

Rolle erstellen

  1. Erstellen Sie mit CREATE ROLE die Rolle r1.

    Nur Benutzeradministratoren (d. h. Benutzer mit der Systemrolle USERADMIN oder höher) oder eine andere Rolle mit der Berechtigung CREATE ROLE für das Konto können Rollen erstellen.

    CREATE ROLE r1
       COMMENT = 'This role has all privileges on schema_1';
    
    Copy

Rolle Berechtigungen erteilen

  1. Erteilen Sie der Rolle r1 die in der Tabelle weiter oben in diesem Abschnitt definierten Berechtigungen.

    Die Systemrolle SECURITYADMIN kann verwendet werden, um Rollen Berechtigungen für Objekte zu erteilen. Weitere Optionen finden Sie unter GRANT <Berechtigungen>.

    GRANT USAGE
      ON WAREHOUSE w1
      TO ROLE r1;
    
    GRANT USAGE
      ON DATABASE d1
      TO ROLE r1;
    
    GRANT USAGE
      ON SCHEMA d1.s1
      TO ROLE r1;
    
    GRANT SELECT
      ON TABLE d1.s1.t1
      TO ROLE r1;
    
    Copy

Benutzern die Rolle zuweisen

  1. Weisen Sie Rolle r1 dem Benutzer smith zu.

    Die Rolle SECURITYADMIN kann verwendet werden, um Benutzern Rollen zuzuweisen. Weitere Optionen finden Sie unter GRANT ROLE.

    GRANT ROLE r1
       TO USER smith;
    
    Copy
  2. Optional können Sie die neue kundenspezifische Rolle als Standardrolle für den Benutzer festlegen. Wenn sich der Benutzer das nächste Mal bei Snowflake anmeldet, ist die Standardrolle automatisch in der Sitzung aktiv.

    Dieser Befehl kann nur von der Rolle mit OWNERSHIP-Berechtigung für einen Benutzer oder von einer höheren Rolle ausgeführt werden.

    Mit dem folgenden Befehl wird die Standardrolle für den Benutzer smith festgelegt:

    ALTER USER smith
       SET DEFAULT_ROLE = r1;
    
    Copy

Erstellen von kundenspezifischen Nur-Lese-Rollen

Angenommen, Sie benötigen eine Rolle, die sich auf die Abfrage aller Tabellen in einem bestimmten Schema beschränkt (z. B. d1.s1). Benutzer, die Befehle mithilfe dieser Rolle ausführen, können die Tabellendaten nicht aktualisieren, keine zusätzlichen Datenbankobjekte erstellen oder Tabellen löschen. Die Rolle beschränkt sich auf die Abfrage von Tabellendaten.

Um eine Nur-Lese-Rolle zu erstellen, führen Sie die grundlegenden Schritte aus, die unter Erstellen von kundenspezifischen Rollen (unter diesem Thema) beschrieben sind. Erteilen Sie im Abschnitt Rolle Berechtigungen erteilen der Nur-Lese-Rolle (in dieser Anleitung read_only genannt) die folgenden Objektberechtigungen:

Berechtigung

Objekt

Anmerkungen

USAGE

Warehouse

Um ein Objekt (z. B. eine Tabelle oder eine Ansicht) abzufragen, muss eine Rolle die USAGE-Berechtigung für ein Warehouse haben. Das Warehouse stellt die Computeressourcen für die Ausführung der Abfrage bereit.

SELECT

Tabelle

Um beliebige Objekte in einem Schema verwenden zu können, muss eine Rolle auch die USAGE-Berechtigung für Datenbank und Schema des Containers haben.

Die GRANT <Berechtigung>-Anweisungen lauten wie folgt:

GRANT USAGE
  ON DATABASE d1
  TO ROLE read_only;

GRANT USAGE
  ON SCHEMA d1.s1
  TO ROLE read_only;

GRANT SELECT
  ON ALL TABLES IN SCHEMA d1.s1
  TO ROLE read_only;

GRANT USAGE
  ON WAREHOUSE w1
  TO ROLE read_only;
Copy

Bemerkung

Mit der Anweisung GRANT SELECT ON ALL TABLES IN SCHEMA <Schema> wird die SELECT-Berechtigung nur für alle vorhandenen Tabellen erteilt. Um der Rolle die SELECT-Berechtigung für alle zukünftigen Tabellen zu erteilen, führen Sie die folgende Anweisung aus:

GRANT SELECT ON FUTURE TABLES IN SCHEMA d1.s1 TO ROLE read_only;
Copy

Erstellen einer Rollenhierarchie

Wenn Sie kundenspezifischen Rollen erstellen, sollten Sie eine Rollenhierarchie erstellen, die letztendlich einer Administratorrolle auf höchster Ebene zugeordnet ist. Im Allgemeinen funktioniert die SYSADMIN-Rolle gut als Rolle, der alle anderen Rollen einer Hierarchie zugewiesen sind. Beachten Sie jedoch, dass jede Rolle mit ausreichenden Berechtigungen diese Funktion übernehmen könnte. Die SYSADMIN-Rolle ist eine vom System definierte Rolle, die über Berechtigungen verfügt, um Warehouses, Datenbanken und Datenbankobjekte in einem Konto zu erstellen und diese Berechtigungen anderen Rollen zu erteilen. In der Standardsystemhierarchie verwaltet die oberste Rolle ACCOUNTADMIN die Rolle des Systemadministrators.

Sie legen eine Rollenhierarchie an, indem Sie eine Rolle einer zweiten Rolle zuweisen. Sie können diese zweite Rolle dann einer dritten Rolle zuweisen. Die mit einer Rolle verbundenen Berechtigungen werden an alle Rollen vererbt, die in der Hierarchie über dieser Rolle liegen.

Die folgende Abbildung veranschaulicht beispielhaft die Rollenhierarchie und die Berechtigungen, über die jede Rolle verfügt:

Role hierarchy and privileges granted to each role

Rolle einer anderen Rolle zuweisen

Weisen Sie die Rolle einer in der Rollenhierarchie übergeordneten Rolle zu. In diesem Beispiel wird die Rolle r1, die in Erstellen von kundenspezifischen Rollen (unter diesem Thema) erstellt wurde, der Rolle SYSADMIN zugewiesen. Die SYSADMIN-Rolle erbt alle Objektberechtigungen, die der Rolle r1 erteilt wurden:

GRANT ROLE r1
   TO ROLE sysadmin;
Copy

Bemerkung

In einem komplexeren Beispiel können Sie die custom-Rolle einer anderen untergeordneten SYSADMIN-Rolle (oder einer anderen Administratorrolle, z. B. einer kundenspezifischen Rolle mit ausreichenden Berechtigungen zum Erstellen von Datenbanken) zuweisen. Die SYSADMIN-Rolle würde die kombinierten Berechtigungen erben, die der custom-Rolle und seiner übergeordneten Rolle erteilt wurden. Wenn die Rolle, die sich in der Hierarchie über der custom-Rolle befindet, irgendwelche Objekte besitzt, dann würde die Rollenhierarchie sicherstellen, dass Mitglieder der SYSADMIN-Rolle diese Objekte ebenfalls (indirekt) besitzen und sie wie erwartet verwalten können.

Anzeigen der erteilten Berechtigungen

Um die aktuelle einem Objekt erteilten Berechtigungen anzuzeigen, können Sie den Befehl SHOW GRANTS ausführen.

Bemerkung

Das Ausführen des Befehls SHOW GRANTS für ein bestimmtes Objekt erfordert die gleichen Objektberechtigungen wie die Ausführung des Befehls SHOW für diesen Objekttyp.

Das Ausführen des Befehls SHOW GRANTS auf einer Tabelle erfordert beispielsweise die folgenden Berechtigungen für die Tabelle sowie für die Container-Datenbank und das Schema:

Datenbank

USAGE

Schema

USAGE

Tabelle

jede Berechtigung

Um beispielsweise die aktuellen Berechtigungen für ein Schema anzuzeigen, führen Sie den folgenden Befehl aus:

SHOW GRANTS ON SCHEMA <database_name>.<schema_name>;
Copy

Führen Sie beispielsweise den folgenden Befehl aus, um die Berechtigungen für database_a.schema_1 anzuzeigen, die unter Erstellen von kundenspezifischen Rollen (unter diesem Thema) erteilt wurden:

SHOW GRANTS ON SCHEMA database_a.schema_1;
Copy

Snowflake gibt die folgenden Ergebnisse zurück:

+-------------------------------+-----------------------+------------+----------------------+------------+--------------------------+--------------+---------------+
| created_on                    | privilege             | granted_on | name                 | granted_to | grantee_name             | grant_option | granted_by    |
|-------------------------------+-----------------------+------------+----------------------+------------+--------------------------+--------------+---------------|
| 2022-03-07 09:04:23.635 -0800 | USAGE                 | SCHEMA     | D1.S1                | ROLE       | R1                       | false        | SECURITYADMIN |
+-------------------------------+-----------------------+------------+----------------------+------------+--------------------------+--------------+---------------+
Copy

Sie können auch den Befehl SHOW GRANTS ausführen, um die Berechtigungen anzuzeigen, die eine Rolle aktuell besitzt, oder die Rollen, die einem Benutzer aktuell zugewiesen sind:

SHOW GRANTS TO ROLE <role_name>;
SHOW GRANTS TO USER <user_name>;
Copy

Führen Sie beispielsweise den folgenden Befehl aus, um die Berechtigungen anzuzeigen, die der Rolle r1 erteilt wurden, die unter Erstellen von kundenspezifischen Rollen (unter diesem Thema) erstellt wurde:

SHOW GRANTS TO ROLE r1;
Copy

Snowflake gibt die folgenden Ergebnisse zurück:

+-------------------------------+-----------+------------+----------------------+------------+--------------+--------------+---------------+
| created_on                    | privilege | granted_on | name                 | granted_to | grantee_name | grant_option | granted_by    |
|-------------------------------+-----------+------------+----------------------+------------+--------------+--------------+---------------|
| 2022-03-07 09:08:43.773 -0800 | USAGE     | DATABASE   | D1                   | ROLE       | R1           | false        | SECURITYADMIN |
| 2022-03-07 09:08:55.253 -0800 | USAGE     | SCHEMA     | D1.S1                | ROLE       | R1           | false        | SECURITYADMIN |
| 2022-03-07 09:09:07.206 -0800 | SELECT    | TABLE      | D1.S1.T1             | ROLE       | R1           | false        | SECURITYADMIN |
| 2022-03-07 09:08:34.838 -0800 | USAGE     | WAREHOUSE  | W1                   | ROLE       | R1           | false        | SECURITYADMIN |
+-------------------------------+-----------+------------+----------------------+------------+--------------+--------------+---------------+
Copy

Festlegen zukünftiger Berechtigungszuweisungen zu Objekten

Zukünftige Berechtigungszuweisungen ermöglichen die Definition eines ersten Satzes von Berechtigungen, die neuen (d. h. zukünftigen) Objekten eines bestimmten Typs (z. B. Tabellen oder Ansichten) in einer Datenbank oder einem Schema erteilt werden sollen. Wenn in der Datenbank oder im Schema neue Objekte erstellt werden, werden die definierten Berechtigungen automatisch einer angegebenen Rolle erteilt.

Zukünftige Berechtigungszuweisungen definieren nur den anfänglichen Satz an Berechtigungen, die neuen Objekten eines angegebenen Typs erteilt werden. Nachdem ein einzelnes Objekt erstellt wurde, können Administratoren explizit zusätzliche Berechtigungen erteilen oder Berechtigungen für das Objekt widerrufen. Dies ermöglicht eine differenzierte Zugriffssteuerung über alle Objekte des Schemas bzw. der Datenbank.

Hinweise

  • Wenn zukünftige Berechtigungszuweisungen zu demselben Objekttyp sowohl für eine Datenbank als auch für ein Schema in dieser Datenbank definiert werden, haben die Zuweisungen auf Schemaebene Vorrang vor den Zuweisungen auf Datenbankebene, und die Zuweisungen auf Datenbankebene werden ignoriert. Dieses Verhalten gilt für Berechtigungen auf zukünftige Objekte, die einer Rolle oder verschiedenen Rollen erteilt werden.

    Mit den folgenden Anweisungen werden beispielsweise unterschiedliche Berechtigungen für Objekte desselben Typs auf Datenbank- und Schemaebene erteilt.

    Rolle r1 wird die SELECT-Berechtigung für alle zukünftigen Tabellen der Datenbank d1 erteilt:

    GRANT SELECT ON FUTURE TABLES IN DATABASE d1 TO ROLE r1;
    
    Copy

    Der Rolle r2 werden die Berechtigungen INSERT und DELETE für alle zukünftigen Tabellen erteilt, die im Schema d1.s1 erstellt werden:

    GRANT INSERT,DELETE ON FUTURE TABLES IN SCHEMA d1.s1 TO ROLE r2;
    
    Copy

    Die zukünftigen Berechtigungszuweisungen der Rolle r1 für Objekttypen im Schema d1.s1 werden vollständig ignoriert. Wenn im Schema d1.s1 neue Tabellen erstellt werden, kommen nur die zukünftigen Berechtigungszuweisungen zur Anwendung, die für Tabellen der Rolle r2 definiert wurden.

  • Zukünftige Berechtigungszuweisungen auf Datenbankebene gelten sowohl für reguläre als auch für verwaltete Zugriffsschemas.

Definieren zukünftiger Berechtigungszuweisungen zu Datenbank- oder Schemaobjekten

Erteilen von Berechtigungen auf zukünftige Objekte eines bestimmten Typs mit dem Befehl GRANT <Berechtigungen> und den Schlüsselwörtern ON FUTURE.

Entziehen zukünftiger Berechtigungszuweisungen von Datenbank- oder Schemaobjekten

Entziehen von Berechtigungen auf zukünftige Objekte mit dem Befehl REVOKE <Berechtigungen> und den Schlüsselwörtern ON FUTURE.

Klonen von Objekten und zukünftige Berechtigungszuweisungen

  • Wenn eine Datenbank oder ein Schema geklont wird, werden zukünftige Berechtigungszuweisungen in den Klon kopiert. Auf diese Weise wird die Konsistenz mit den regulären Objektzuweisungen beibehalten, bei denen nicht die Berechtigungen des Quellobjekts (d. h. der Datenbank) in den Klon kopiert werden, sondern die Berechtigungen für alle untergeordneten Objekte (d. h. Schemas in der Datenbank).

  • Wenn ein Objekt in einem Schema geklont wird, werden alle zukünftigen Berechtigungszuweisungen, die für diesen Objekttyp im Schema definiert sind, auf das geklonte Objekt angewendet, es sei denn, die Option COPY GRANTS wird in der CREATE <Objekt>-Anweisung der Klonoperation angegeben. In diesem Fall behält das neue Objekt die Zugriffsberechtigungen des ursprünglichen Objekts bei und erbt nicht die zukünftigen Berechtigungszuweisungen für Objekte dieses Typs.

Verwalten zukünftiger Berechtigungszuweisungen zur klassischen Konsole

Sie können zukünftige Berechtigungszuweisungen auch über die klassische Weboberfläche definieren:

Berechtigungen auf zukünftige Datenbankobjekte
  1. Wählen Sie Databases Databases tab aus.

  2. Klicken Sie auf die Zeile einer spezifischen Datenbank. Der Sicherheitsbereich wird geöffnet.

  3. Wählen Sie Grant Privileges aus. Das Dialogfenster Grant Privileges wird geöffnet.

  4. Wählen Sie in der Dropdown-Liste Grant privileges on die Option future object_type (Objekttyp) aus, um zukünftige Berechtigungszuweisungen zu neuen Objekten eines bestimmten Objekttyps zu definieren.

  5. Wählen Sie in den übrigen Dropdown-Listen die Berechtigungen aus, die Sie den neuen Objekten des angegebenen Typs erteilen möchten, sowie die Rolle, der die Berechtigungen erteilt werden sollen.

  6. Wählen Sie Grant Privileges aus.

Berechtigungen auf zukünftige Schemaobjekte
  1. Wählen Sie Databases Databases tab » <DB-Name> » Schemas aus.

  2. Klicken Sie auf die Zeile eines spezifischen Schemas. Der Sicherheitsbereich wird geöffnet.

  3. Wählen Sie Grant Privileges aus. Das Dialogfenster Grant Privileges wird geöffnet.

  4. Wählen Sie in der Dropdown-Liste Grant privileges on die Option future object_type (Objekttyp) aus, um zukünftige Berechtigungszuweisungen zu neuen Objekten eines bestimmten Objekttyps zu definieren.

  5. Wählen Sie in den übrigen Dropdown-Listen die Berechtigungen aus, die Sie den neuen Objekten des angegebenen Typs erteilen möchten, sowie die Rolle, der die Berechtigungen erteilt werden sollen.

  6. Wählen Sie Grant Privileges aus.

Um zukünftige Berechtigungszuweisungen in Snowsight zu verwalten, führen Sie SQL-Anweisungen in einem Arbeitsblatt aus.

Erstellen verwalteter Zugriffsschemas

Verwaltete Zugriffsschemas verbessern die Sicherheit, indem die Verwaltung von Berechtigungen für Objekte gesperrt wird.

In regulären (d. h. nicht verwalteten) Schemas können Objekteigentümer (d. h. eine Rolle mit der OWNERSHIP-Berechtigung für ein Objekt) anderen Rollen Zugriff auf ihre Objekte gewähren einschließlich der Option, diesen Rollen auch die Möglichkeit zu geben, Objektberechtigungen zu verwalten.

Mit verwalteten Zugriffsschemas haben Objekteigentümer nun keine Möglichkeit mehr, Berechtigungsentscheidungen zu treffen. Nur der Schemaeigentümer (d. h. die Rolle mit der OWNERSHIP-Berechtigung für das Schema) oder eine Rolle mit der Berechtigung MANAGE GRANTS kann Berechtigungen für Objekte im Schema, einschließlich zukünftiger Berechtigungszuweisungen erteilen, wodurch die Berechtigungsverwaltung zentralisiert wird.

Sie können eine Netzwerkrichtlinie entweder über die Weboberfläche oder mit SQL erstellen:

Classic Console

Klicken Sie auf Databases Databases tab » <DB-Name> » Schemas » Create Schema.

SQL

Führen Sie eine CREATE SCHEMA-Anweisung mit den Schlüsselwörtern WITH MANAGED ACCESS aus.

Sie können ein reguläres Schema in ein verwaltetes Zugriffsschema (oder umgekehrt) ändern, indem Sie entweder die Weboberfläche oder SQL verwenden:

Classic Console

Klicken Sie auf Databases Databases tab » <DB-Name> » Schemas » <Schemaname> » Alter a schema.

SQL

Führen Sie eine ALTER SCHEMA-Anweisung mit den Schlüsselwörtern ENABLE | DISABLE MANAGED ACCESS aus.

In der folgenden Tabelle wird angegeben, welche Rollen Objektberechtigungen in einem regulären oder verwalteten Zugriffsschema verwalten können:

Rolle

Kann Objektberechtigungen in einem regulären Schema erteilen

Kann Objektberechtigungen in einem verwalteten Zugriffsschema erteilen

SYSADMIN

Nein

Nein

SECURITYADMIN oder höher

Ja

Ja

Datenbankeigentümer

Nein

Nein

Schemaeigentümer

Nein

Ja

Objekteigentümer

Ja

Nein

Jede Rolle mit der Berechtigung MANAGE GRANTS

Ja

Ja

Verwalten von Objektberechtigungen mit Snowsight

Sie können Snowsight verwenden, um die Zuweisung von Datenbankobjektberechtigungen zu Rollen zu verwalten. Um diese Berechtigungen zu verwalten, verwenden Sie eine Rolle mit OWNERSHIP-Berechtigung für das Objekt oder mit globaler MANAGE GRANTS-Berechtigung.

Wenn Sie Snowsight zur Verwaltung von Berechtigungen verwenden, ist dies gleichbedeutend mit der Ausführung eines GRANT PRIVILEGE- oder REVOKE PRIVILEGE-Befehls in SQL. Sie können zum Beispiel Snowsight verwenden, um der Rolle ACCOUNTADMIN die Berechtigung USAGE für eine Ansicht zu erteilen.

Berechtigungen für Objekte erteilen

Gehen Sie wie folgt vor, um einer Rolle Berechtigungen für Datenbankobjekte zu erteilen:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Data » Databases aus.

  3. Wählen Sie für eine bestimmte Datenbank und ein bestimmtes Schema ein Datenbankobjekt aus, für das Sie Berechtigungen erteilen möchten.

  4. Suchen Sie in Object Details den Abschnitt Privileges.

  5. Wählen Sie + Privilege aus.

  6. Wählen Sie die Rolle aus, der Sie die Berechtigung zuweisen möchten.

  7. Wählen Sie die Berechtigung aus, die Sie der Rolle erteilen möchten.

  8. Wenn Sie möchten, dass die Rolle auch anderen Rollen diese Berechtigung erteilen kann, wählen Sie Grant option aus.

  9. Wiederholen Sie die Schritte für jede Objektberechtigung, die Sie der Rolle erteilen möchten.

  10. Wählen Sie Grant Privileges aus.

Berechtigungen für Objekte entziehen

Gehen Sie wie folgt vor, um einer Rolle die Berechtigungen für Datenbankobjekte zu entziehen:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Data » Databases aus.

  3. Wählen Sie für eine bestimmte Datenbank und ein bestimmtes Schema ein Datenbankobjekt aus, dem Sie die Berechtigungen entziehen möchten.

  4. Suchen Sie in Object Details den Abschnitt Privileges.

  5. Wählen Sie für eine bestimmte aufgelistete Rolle das Bleistiftsymbol Edit Role aus, das angezeigt wird, wenn Sie den Mauszeiger über die Zeile bewegen.

  6. Wählen Sie im angezeigten Dialogfeld die Option x aus, um einer bestimmten Rolle eine Berechtigung zu entziehen.

  7. Wählen Sie Update Privileges aus.

Berechtigungen identifizieren, die der Rollen erteilt wurden

Um die einer bestimmten Rolle zugeteilten Berechtigungen anzuzeigen, können Sie den Befehl SHOW GRANTS ausführen oder in Snowsight Folgendes tun:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Users & Roles » Roles aus.

  3. Wählen Sie Table aus, und bestimmen Sie die Rolle, für die Sie die erteilten Berechtigungen anzeigen möchten.

  4. Wählen Sie die Rolle aus, für die Sie die erteilten Berechtigungen anzeigen möchten, um die Details anzuzeigen.

  5. Überprüfen Sie den Bereich Privileges für die Rolle.

Möglichkeit zum Überwachen des Nutzungs- und Abrechnungsverlaufs durch Nichtkontoadministratoren über die klassische Konsole

Snowflake bietet umfangreiche Kontonutzungs- und Abrechnungsinformationen zu Datenspeicherung und -transfer sowie zu Warehouse-Nutzung und -Auslastung:

Snowsight

Select Admin » Cost Management.

Classic Console

Klicken Sie auf Account Account tab » Billing & Usage.

SQL

Fragen Sie Folgendes ab:

Standardmäßig können diese Informationen nur von Kontoadministratoren abgerufen/angezeigt werden.

Bemerkung

Derzeit können Nutzungs- und Abrechnungsinformationen in Snowsight nur von Kontoadministratoren angezeigt werden. Es ist nicht möglich, anderen Rollen die Berechtigung zur Anzeige dieser Informationen zu erteilen.

Damit Benutzer, die keine Kontoadministratoren sind, auf diese Informationen zugreifen bzw. sie anzeigen können, erteilen Sie einer systemdefinierten oder kundenspezifischen Rolle die folgenden Berechtigungen. Wenn einer Rolle die Berechtigungen erteilt werden, können alle Benutzer, denen die Rolle zugewiesen wurde, auf diese historischen/nutzungsbezogenen Informationen zuzugreifen.

Berechtigung

Objekt

Beschreibung

MONITOR USAGE

Konto (d. h. globale Berechtigung)

Ermöglicht Benutzern, denen die Rolle zugewiesen wurde, Nutzungs- und Abrechnungsinformationen auf der Weboberfläche anzuzeigen und die entsprechenden Tabellenfunktionen im Information Schema abzufragen.

Darüber hinaus geben die Befehle SHOW DATABASES und SHOW WAREHOUSES bei dieser Berechtigung die Listen aller Datenbanken und Warehouses im Konto zurück, unabhängig von anderen Berechtigungen.

IMPORTED PRIVILEGES

snowflake-Datenbank

Ermöglicht Benutzern, denen die Rolle zugewiesen wurde, die Abfrage aller ACCOUNT USAGE-Ansichten, einschließlich der Ansichten mit Nutzungs- und Abrechnungsinformationen.

Weitere Informationen dazu finden Sie unter Aktivieren der Nutzung der SNOWFLAKE-Datenbank für andere Rollen.

Erteilen Sie beispielsweise der Rolle custom folgende Berechtigungen:

GRANT MONITOR USAGE ON ACCOUNT TO ROLE custom;

GRANT IMPORTED PRIVILEGES ON DATABASE snowflake TO ROLE custom;
Copy