Richten Sie die Authentifizierung ein, und gewähren Sie Rollenberechtigungen, um die Snowflake-Metadatensammlung zu aktivieren.
Vorbereitungen
Erforderliche Rolle: ACCOUNTADMIN
Sie müssen in Snowflake über eine ACCOUNTADMIN-Rolle verfügen, um Berechtigungen zu gewähren.
Warum und wann dieser Vorgang ausgeführt wird
Der Sammler unterstützt Anwendername und Schlüsselpaar-Authentifizierung. Weitere Informationen finden Sie unter Snowflake-Dokumentation .
Snowflake bestimmt die Autorisierung basierend auf Rollen. Beim Herstellen einer Verbindung mit Snowflake muss eine Rolle angegeben werden. Die Rolle „ACCOUNTADMIN“ ist erforderlich, um den gesamten Metadatenbereich zu erfassen. Andere Rollen bieten nur Zugriff auf grundlegende Metadaten, ohne erweiterte Metadaten oder Herkunftsinformationen. Wenn Sie eine andere Rolle als ACCOUNTADMIN verwenden, gewähren Sie die in dieser Aufgabe beschriebenen rollenspezifischen Berechtigungen.
Einige Sammlerfunktionen erfordern die Ausführung von Abfragen in Snowflake, was ein Lager erfordert. Wenn für die Anwenderanmeldeinformationen ein Standardlager konfiguriert ist, ist keine zusätzliche Lagerkonfiguration erforderlich. Um ein anderes Lager zu verwenden oder wenn kein Standardlager festgelegt ist, geben Sie das Lager mithilfe der Konfigurationsoption „Snowflake-Lager“ an.
Prozedur
-
Erstellen Sie eine Rolle, und gewähren Sie Lagerberechtigungen.
CREATE OR REPLACE ROLE DDW_ACCOUNT_ROLE;
GRANT OPERATE, USAGE ON WAREHOUSE <warehouse_name> TO ROLE DDW_ACCOUNT_ROLE;
-
Gewähren Sie Berechtigungen, um das Sammeln von Metadaten für Datenbanken, Schemata, Tabellen und Ansichten zu aktivieren.
GRANT USAGE ON DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT USAGE ON ALL SCHEMAS IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT SELECT ON ALL TABLES IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT SELECT ON ALL EXTERNAL TABLES IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT SELECT ON ALL VIEWS IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT USAGE ON FUTURE SCHEMAS IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT SELECT ON FUTURE TABLES IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
Hinweis: Wenn Sie die Optionen „Sammlung von Beispielzeichenfolgenwerten aktivieren“ und „Sammlung von Spaltenstatistiken aktivieren“ nicht verwenden möchten, können Sie die Berechtigung „REFERENZEN“ gewähren, anstatt Folgendes AUSZUWÄHLEN:
GRANT USAGE ON DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT USAGE ON ALL SCHEMAS IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT REFERENCES ON ALL TABLES IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT REFERENCES ON ALL EXTERNAL TABLES IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT REFERENCES ON ALL VIEWS IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT USAGE ON FUTURE SCHEMAS IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
GRANT REFERENCES ON FUTURE TABLES IN DATABASE <database_name> TO ROLE DDW_ACCOUNT_ROLE;
-
Gewähren Sie Berechtigungen zum Sammeln folgender Elemente: Objektabhängigkeitsbasierte Herkunft, anwenderdefinierte Funktionen, Datentrikfunktionen, gespeicherte Verfahren, Tags und Tag-Werte, Zeilenzugriffsrichtlinien, Maskierungsrichtlinien und Tabellennutzung.
Wichtig: Sie benötigen die Rolle ACCOUNTADMIN, um diese Berechtigungen zu gewähren.
Es gibt zwei Optionen zum Zuweisen dieser Berechtigungen:
-
Option 1: Verwenden Sie die Rolle ACCOUNTADMIN, um umfassende importierte Berechtigungen für alle Datenbanken zu gewähren:
USE ROLE ACCOUNTADMIN;
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE DDW_ACCOUNT_ROLE;
-
Option 2: Weisen Sie bestimmte Datenbankrollen für die gezielte Berechtigungszuteilung zu:
USE ROLE ACCOUNTADMIN;
USE DATABASE SNOWFLAKE;
GRANT DATABASE ROLE OBJECT_VIEWER TO ROLE DDW_ACCOUNT_ROLE;
GRANT DATABASE ROLE GOVERNANCE_VIEWER TO ROLE DDW_ACCOUNT_ROLE;
Weitere Informationen zu diesen Datenbankrollen finden Sie unter Snowflake-Dokumentation .
- Wahlweise:
Gewähren Sie Berechtigungen für Streamlit-Apps.
Diese Berechtigungen sind nur erforderlich, wenn Sie Metadaten aus Streamlit-Apps sammeln möchten:
GRANT USAGE ON STREAMLIT <streamlit_app_name> TO ROLE DDW_ACCOUNT_ROLE;
-
Erstellen Sie einen dedizierten Snowflake-Anwender für den Sammler.
Um eine Schlüsselpaar-Authentifizierung für diesen Anwender zu erstellen, benötigen Sie mindestens die Rolle „SECURITYADMIN“, um die Anwendereinstellungen zu ändern. Siehe Snowflake-Dokumentation .
CREATE USER DDW_ACCOUNT
RSA_PUBLIC_KEY = '<rsa_public_key>'
TYPE = SERVICE
DEFAULT_ROLE = DDW_ACCOUNT_ROLE
DEFAULT_WAREHOUSE = '<warehouse_name>'
DISPLAY_NAME = 'data.world';
GRANT ROLE DDW_ACCOUNT_ROLE TO USER DDW_ACCOUNT;
-
Gewähren Sie dem Anwender Zugriff auf das Lager.
GRANT USAGE ON WAREHOUSE <warehouse_name> TO ROLE DDW_ACCOUNT_ROLE;
-
Stellen Sie sicher, dass die entsprechenden Berechtigungen gewährt werden.
Führen Sie die folgende Abfrage aus:
SHOW GRANTS TO ROLE DDW_ACCOUNT_ROLE;