❄️

Snowflake Connector for Python での接続に SnowSQL のログイン情報を使う

2022/07/12に公開

やりたいこと

  • 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