Verwalten von Snowflake-Konten und verwaltete Konten mit Python

Sie können Python verwenden, um Konten und verwaltete Konten in Snowflake zu verwalten.

Voraussetzungen

Die Beispiele in diesem Thema gehen davon aus, dass Sie Code hinzugefügt haben, um eine Verbindung zu Snowflake herzustellen und ein Root-Objekt zu erstellen, von dem aus Sie die Snowflake Python APIs verwenden können.

Beispielsweise verwendet der folgende Code Verbindungsparameter, die in einer Konfigurationsdatei definiert sind, um eine Verbindung zu Snowflake zu erstellen:

from snowflake.core import Root
from snowflake.snowpark import Session

session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Copy

Unter Verwendung des resultierenden Session-Objekts erstellt der Code ein Root-Objekt, das die Typen und Methoden der API verwendet. Weitere Informationen dazu finden Sie unter Verbinden mit Snowflake mit dem Snowflake Python APIs.

Verwalten von Konten

Sie können Konten in Ihrer Snowflake-Organisation verwalten. Einen Überblick über die Konten in Snowflake finden Sie unter Verwalten von Konten in Ihrer Organisation.

Die Snowflake Python APIs stellt Konten mit zwei verschiedenen Typen dar:

  • Account: Zeigt die Eigenschaften eines Kontos an, wie z. B. seinen Namensbezeichner, den Anmeldenamen und das Kennwort des ersten administrativen Benutzers und seine Snowflake Edition.

  • AccountResource: Stellt Methoden zur Verfügung, mit denen Sie ein entsprechendes Account-Objekt abbrufen und das Konto löschen und seine Löschung wieder aufheben können.

Erstellen eines Kontos

Um ein Konto zu erstellen, erstellen Sie zunächst ein Account-Objekt und dann ein AccountCollection-Objekt aus dem API Root-Objekt. Fügen Sie mit AccountCollection.create das neue Konto zu Snowflake hinzu.

Der Code im folgenden Beispiel erstellt ein Account-Objekt, das ein Konto namens my_account1 mit den angegebenen Eigenschaften des Kontos darstellt:

from snowflake.core.account import Account

my_account = Account(
  name="my_account1",
  admin_name="admin",
  admin_password="TestPassword1",
  first_name="Jane",
  last_name="Smith",
  email="myemail@myorg.org",
  edition="ENTERPRISE",
  region="aws_us_west_2",
  comment="creating my account",
)

root.accounts.create(my_account)
Copy

Aufrufen von Kontodaten

Sie können Informationen über ein Konto abrufen, indem Sie die AccountResource.fetch-Methode aufrufen, die ein Account-Objekt zurückgibt.

Der Code im folgenden Beispiel ruft Informationen über ein Konto namens my_account1 ab:

my_account = root.accounts["my_account1"].fetch()
print(my_account.to_dict())
Copy

Auflisten von Konten

Sie können Konten mit der AccountCollection.iter-Methode auflisten, die einen PagedIter-Iterator von Account-Objekten zurückgibt.

Der Code im folgenden Beispiel listet Konten auf, deren Name mit my beginnt, und gibt den Namen jedes einzelnen aus:

account_iter = root.accounts.iter(like="my%")  # returns a PagedIter[Account]
for account_obj in account_iter:
  print(account_obj.name)
Copy

Der Code im folgenden Beispiel setzt den optionalen history=True-Parameter, um einen Verlauf der Konten aufzulisten, einschließlich gelöschter Konten, die noch nicht gelöscht wurden.

account_iter = root.accounts.iter(history=True)  # returns a PagedIter[Account]
for account_obj in account_iter:
  print(account_obj.name)
Copy

Ausführen von Kontooperationen

Sie können gängige Kontooperationen, wie z. B. das Löschen und Rückgängigmachen der Löschung eines Kontos, mit einem AccountResource-Objekt durchführen.

Um die Operationen zu demonstrieren, die Sie mit einer Ressourcekonto durchführen können, führt der Code im folgenden Beispiel Folgendes aus:

  1. Ruft das my_account1-Konteressourcenobjekt ab.

  2. Löscht das Konto mit dem angegebenen Übergangsfrist, d. h. der Anzahl der Tage, in denen das Konto wiederhergestellt werden kann („undropped“).

  3. Hebt die Löschung des Kontos auf.

my_account_res = root.accounts["my_account1"]
my_account_res.drop(grace_period_in_days=4)
my_account_res.undrop()
Copy

Verwalten von verwalteten Konten

Sie können von Snowflake verwaltete Konten verwalten, die derzeit von Datenanbietern verwendet werden, um Lesekonten für ihre Kunden zu erstellen. Weitere Informationen dazu finden Sie unter Leserkonten verwalten.

Die Snowflake Python APIs stellt verwaltete Konten mit zwei verschiedenen Typen dar:

  • ManagedAccount: Zeigt die Eigenschaften eines verwalteten Kontos an, z. B. seinen Kontobezeichner, den Anmeldenamen und das Kennwort seines ersten administrativen Benutzers und seinen Kontotyp.

  • ManagedAccountResource: Zeigt Methoden an, mit denen Sie ein entsprechendes ManagedAccount-Objekt abrufen und das verwaltete Konto löschen können.

Erstellen eines verwalteten Kontos

Um ein verwaltetes Konto zu erstellen, legen Sie zunächst ein ManagedAccount-Objekt an und erstellen dann ein ManagedAccountCollection-Objekt aus dem API Root-Objekt. Fügen Sie mit ManagedAccountCollection.create das neue verwaltete Konto zu Snowflake hinzu.

Der Code im folgenden Beispiel erstellt ein ManagedAccount-Objekt, das ein verwaltetes Konto namens reader_acct1 mit den angegebenen Eigenschaften des Kontos darstellt:

from snowflake.core.managed_account import ManagedAccount

my_managed_account = ManagedAccount(
  name="reader_acct1",
  admin_name="admin",
  admin_password="TestPassword1",
  type="READER",
  comment="creating my managed account",
)

root.managed_accounts.create(my_managed_account)
Copy

Details zum verwalteten Konto abrufen

Sie können Informationen über ein verwaltetes Konto abrufen, indem Sie die ManagedAccountResource.fetch-Methode aufrufen, die ein ManagedAccount-Objekt zurückgibt.

Der Code im folgenden Beispiel ruft Informationen über ein verwaltetes Konto namens reader_acct1 ab:

my_managed_account = root.managed_accounts["reader_acct1"].fetch()
print(my_managed_account.to_dict())
Copy

Auflisten von verwalteten Konten

Sie können verwaltete Konten mit der ManagedAccountCollection.iter-Methode auflisten, die einen PagedIter-Iterator von ManagedAccount-Objekten zurückgibt.

Der Code im folgenden Beispiel listet verwaltete Konten auf, deren Name mit reader beginnt, und gibt den Namen jedes einzelnen aus:

account_iter = root.managed_accounts.iter(like="reader%")  # returns a PagedIter[ManagedAccount]
for account_obj in account_iter:
  print(account_obj.name)
Copy

Löschen eines verwalteten Kontos

Sie können ein verwaltetes Konto mit einem ManagedAccountResource-Objekt löschen.

Der Code im folgenden Beispiel ruft das reader_acct1-Ressourcenobjekt für das verwaltete Konto ab und löscht dann das Konto.

my_managed_account_res = root.managed_accounts["reader_acct1"]
my_managed_account_res.drop()
Copy