Python을 사용하여 Snowflake 계정 및 관리 계정 관리¶
Python을 사용하여 Snowflake에서 계정 및 관리되는 계정을 관리할 수 있습니다.
전제 조건¶
이 항목의 예제에서는 Snowflake와 연결하고 Snowflake Python APIs 을 사용할 수 있는 Root
오브젝트를 생성하는 코드를 추가했다고 가정합니다.
예를 들어, 다음 코드는 구성 파일에 정의된 연결 매개 변수를 사용하여 Snowflake에 대한 연결을 생성합니다.
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
해당 코드에서는 결과 Session
오브젝트를 사용하여 API의 유형과 메서드를 사용하기 위해 Root
오브젝트를 생성합니다. 자세한 내용은 Snowflake Python APIs 을 사용하여 Snowflake에 연결 섹션을 참조하십시오.
계정 관리하기¶
Snowflake 조직에서 계정을 관리할 수 있습니다. Snowflake 계정에 대한 개요는 조직 내 계정 관리하기 섹션을 참조하십시오.
Snowflake Python APIs 은 다음 두 가지 별도의 유형의 계정을 나타냅니다.
Account
: 계정의 이름 식별자, 초기 관리자 사용자의 로그인 이름 및 비밀번호, Snowflake 버전과 같은 계정 속성을 노출합니다.AccountResource
: 해당Account
오브젝트를 가져오고 계정을 삭제 및 삭제 취소하는 데 사용할 수 있는 메서드를 노출합니다.
계정 만들기¶
계정을 생성하려면 먼저 Account
오브젝트를 생성한 다음 API Root
오브젝트에서 AccountCollection
오브젝트를 생성합니다. AccountCollection.create
를 사용하여 Snowflake에 새 계정을 추가합니다.
다음 예제의 코드는 계정 속성이 지정된 my_account1
계정을 나타내는 Account
오브젝트를 생성합니다.
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)
계정 세부 정보 가져오기¶
Account
오브젝트를 반환하는 AccountResource.fetch
메서드를 호출하여 계정에 대한 정보를 얻을 수 있습니다.
다음 예제의 코드는 my_account1
계정에 대한 정보를 가져옵니다.
my_account = root.accounts["my_account1"].fetch()
print(my_account.to_dict())
계정 나열하기¶
Account
오브젝트의 PagedIter
반복기를 반환하는 AccountCollection.iter
메서드를 사용하여 계정을 나열할 수 있습니다.
다음 예제의 코드는 이름이 my
로 시작하는 계정을 나열하고 각 계정의 이름을 출력합니다.
account_iter = root.accounts.iter(like="my%") # returns a PagedIter[Account]
for account_obj in account_iter:
print(account_obj.name)
다음 예제의 코드는 선택적 매개 변수 history=True
를 설정하여 아직 삭제되지 않은 삭제된 계정을 포함한 계정 기록을 목록으로 표시합니다.
account_iter = root.accounts.iter(history=True) # returns a PagedIter[Account]
for account_obj in account_iter:
print(account_obj.name)
계정 작업 수행하기¶
계정 삭제 및 삭제 취소와 같은 일반적인 계정 작업을 AccountResource
오브젝트로 수행할 수 있습니다.
계정 리소스로 수행할 수 있는 작업을 보여주기 위해 다음 예제의 코드는 다음을 수행합니다.
my_account1
계정 리소스 오브젝트를 가져옵니다.지정된 유예 기간 동안 계정을 삭제합니다. 유예 기간이란 계정을 복구할 수 있는 일수(“삭제 취소”)를 말합니다.
계정을 삭제 취소합니다.
my_account_res = root.accounts["my_account1"]
my_account_res.drop(grace_period_in_days=4)
my_account_res.undrop()
관리 계정 관리하기¶
현재 데이터 공급자가 컨슈머를 위한 독자 계정을 생성하는 데 사용하는 Snowflake 관리 계정을 관리할 수 있습니다. 자세한 내용은 독자 계정 관리하기 섹션을 참조하십시오.
Snowflake Python APIs 은 두 가지 별도의 유형으로 관리되는 계정을 나타냅니다.
ManagedAccount
: 관리되는 계정의 속성(이름 식별자, 초기 관리자 사용자의 로그인 이름 및 비밀번호, 계정 유형 등)을 표시합니다.ManagedAccountResource
: 해당ManagedAccount
오브젝트를 가져오고 관리 계정을 삭제하는 데 사용할 수 있는 메서드를 노출합니다.
관리 계정 생성하기¶
관리 계정을 생성하려면 먼저 ManagedAccount
오브젝트를 생성한 다음 API Root
오브젝트에서 ManagedAccountCollection
오브젝트를 생성합니다. ManagedAccountCollection.create
를 사용하여 새 관리 계정을 Snowflake에 추가합니다.
다음 예제의 코드는 지정된 계정 속성이 있는 reader_acct1
관리 계정을 나타내는 ManagedAccount
오브젝트를 생성합니다.
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)
관리되는 계정 세부 정보 가져오기¶
ManagedAccount
오브젝트를 반환하는 ManagedAccountResource.fetch
메서드를 호출하여 관리 계정에 대한 정보를 얻을 수 있습니다.
다음 예제의 코드는 reader_acct1
관리 계정에 대한 정보를 가져옵니다.
my_managed_account = root.managed_accounts["reader_acct1"].fetch()
print(my_managed_account.to_dict())
관리 계정 목록¶
ManagedAccount
오브젝트의 PagedIter
반복기를 반환하는 ManagedAccountCollection.iter
메서드를 사용하여 관리 계정을 나열할 수 있습니다.
다음 예제의 코드는 이름이 reader
로 시작하는 관리 계정을 나열하고 각 계정의 이름을 출력합니다.
account_iter = root.managed_accounts.iter(like="reader%") # returns a PagedIter[ManagedAccount]
for account_obj in account_iter:
print(account_obj.name)
관리 계정 삭제 취소하기¶
ManagedAccountResource
오브젝트가 있는 관리 계정을 삭제할 수 있습니다.
다음 예제의 코드는 reader_acct1
관리 계정 리소스 오브젝트를 가져온 다음 계정을 삭제합니다.
my_managed_account_res = root.managed_accounts["reader_acct1"]
my_managed_account_res.drop()