Gestion des comptes Snowflake et des comptes gérés avec Python¶
Vous pouvez utiliser Python pour gérer les comptes et les comptes gérés dans Snowflake.
Conditions préalables¶
Les exemples de cette rubrique supposent que vous ayez ajouté le code nécessaire pour vous connecter à Snowflake et créer un objet Root
à partir duquel utiliser les Snowflake Python APIs.
Par exemple, le code suivant utilise les paramètres de connexion définis dans un fichier de configuration pour créer une connexion à Snowflake.
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
En utilisant l’objet Session
obtenu, le code crée un objet Root
pour utiliser les types et les méthodes de l’API. Pour plus d’informations, voir Connexion à Snowflake avec Snowflake Python APIs.
Gestion des comptes¶
Vous pouvez gérer les comptes de votre organisation Snowflake. Pour un aperçu des comptes dans Snowflake, voir Gestion des comptes dans votre organisation.
Les Snowflake Python APIs représentent des comptes avec deux types distincts :
Account
: expose les propriétés d’un compte telles que son identificateur de nom, le nom de connexion et le mot de passe de son utilisateur administratif initial et son édition Snowflake.AccountResource
: expose des méthodes que vous pouvez utiliser pour récupérer un objetAccount
correspondant et pour annuler la suppression de la base de données.
Création d’un compte¶
Pour créer un compte, créez d’abord un objet Account
, puis créez un objet AccountCollection
de l’objet d’API Root
. En utilisant AccountCollection.create
, ajoutez le nouveau compte à Snowflake.
Le code de l’exemple suivant crée un objet Account
qui représente un compte nommé my_account1
avec les propriétés de compte spécifiées :
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)
Obtention de détails sur le compte¶
Vous pouvez obtenir des informations sur un compte en appelant la méthode AccountResource.fetch
, qui renvoie un objet Account
.
Le code de l’exemple suivant permet d’obtenir des informations sur un compte appelé my_account1
:
my_account = root.accounts["my_account1"].fetch()
print(my_account.to_dict())
Affichage des comptes¶
Vous pouvez répertorier des comptes à l’aide de la méthode AccountCollection.iter
qui renvoie un itérateur PagedIter
d’objets Account
.
Le code de l’exemple suivant répertorie les comptes dont le nom commence par my
et imprime le nom de chacun :
account_iter = root.accounts.iter(like="my%") # returns a PagedIter[Account]
for account_obj in account_iter:
print(account_obj.name)
Le code de l’exemple suivant définit le paramètre facultatif history=True
pour répertorier un historique des comptes, y compris les comptes supprimés qui n’ont pas encore été supprimés définitivement.
account_iter = root.accounts.iter(history=True) # returns a PagedIter[Account]
for account_obj in account_iter:
print(account_obj.name)
Effectuer des opérations de compte¶
Vous pouvez effectuer des opérations de compte courantes, telles que la suppression et l’annulation de la suppression d’un compte, avec un objet AccountResource
.
Pour illustrer les opérations que vous pouvez effectuer avec une ressource de compte, le code de l’exemple suivant effectue les opérations suivantes :
Extrait l’objet de ressource de compte
my_account1
.Supprime le compte avec la période de grâce spécifiée, qui correspond au nombre de jours pendant lesquels le compte peut être restauré (« dont la suppression est annulée »).
Annule la suppression du compte.
my_account_res = root.accounts["my_account1"]
my_account_res.drop(grace_period_in_days=4)
my_account_res.undrop()
Gestion des comptes gérés¶
Vous pouvez gérer des comptes gérés par Snowflake, qui sont actuellement utilisés par les fournisseurs de données pour créer des comptes de lecteur pour leurs consommateurs. Pour plus d’informations, voir Gérer des comptes de lecteur.
Les Snowflake Python APIs représentent les comptes gérés avec deux types distincts :
ManagedAccount
: expose les propriétés d’un compte géré telles que son identificateur de nom, le nom de connexion et le mot de passe de son utilisateur administratif initial et son type de compte.ManagedAccountResource
: expose des méthodes que vous pouvez utiliser pour extraire un objetManagedAccount
correspondant et pour supprimer le compte géré.
Création d’un compte géré¶
Pour créer un compte géré, il faut d’abord créer un objet ManagedAccount
, puis créer un objet ManagedAccountCollection
à partir de l’objet de l’objet d’API Root
. En utilisant ManagedAccountCollection.create
, ajoutez le nouveau compte géré à Snowflake.
Le code de l’exemple suivant crée un objet ManagedAccount
qui représente un compte géré nommé reader_acct1
avec les propriétés de compte spécifiées :
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)
Obtenir les détails du compte géré¶
Vous pouvez obtenir des informations sur un compte géré en appelant la méthode ManagedAccountResource.fetch
, qui renvoie un objet ManagedAccount
.
Le code de l’exemple suivant permet d’obtenir des informations sur un compte géré appelé reader_acct1
:
my_managed_account = root.managed_accounts["reader_acct1"].fetch()
print(my_managed_account.to_dict())
Affichage des comptes gérés¶
Vous pouvez répertorier des comptes gérés à l’aide de la méthode ManagedAccountCollection.iter
qui renvoie un itérateur PagedIter
d’objets ManagedAccount
.
Le code de l’exemple suivant répertorie les comptes gérés dont le nom commence par reader
et imprime le nom de chacun :
account_iter = root.managed_accounts.iter(like="reader%") # returns a PagedIter[ManagedAccount]
for account_obj in account_iter:
print(account_obj.name)
Suppression d’un compte géré¶
Vous pouvez supprimer un compte géré avec un objet ManagedAccountResource
.
Le code dans l’exemple suivant extrait le l’objet de ressource de compte géré reader_acct1
, puis supprime le compte.
my_managed_account_res = root.managed_accounts["reader_acct1"]
my_managed_account_res.drop()