❄️
Snowflake Connector for Python での接続に SnowSQL のログイン情報を使う
やりたいこと
- Snowflake Connector for Python で Snowflake に接続するときに(主にコピペ時の事故を防ぐために)パスワードをベタ書きしたくない
- SnowSQL に保存されているログイン情報を使いたい
やり方
重要ポイント:
- SnowSQL のデフォルトのログイン情報は
~/.snowsql/config
に格納されている - .snowsql/config は ini ファイルの文法なので
configparser
でパースできる - デフォルトのログイン情報は
[connections]
セクションで固定なので決め打ちできる
import snowflake.connector
import os
import configparser
home_dir = os.environ.get("HOME")
snowsql_config_path = f"{home_dir}/.snowsql/config"
config = configparser.ConfigParser()
config.read(snowsql_config_path)
conn = snowflake.connector.connect(
user = config["connections"]["username"],
password = config["connections"]["password"],
account = config["connections"]["accountname"],
database = config["connections"]["database"],
schema = config["connections"]["schema"],
role = config["connections"]["rolename"],
warehouse = config["connections"]["warehouse"]
)
まとめ
AWS Secrets Manager とか使えるならそっちのほうがいいと思います。
Discussion