コンテンツにスキップ

接続

接続の方法はブラウザでのログイン(Snowflake の OAuth)とキーペア認証の2つです。パスワードを入力する接続(ブラウザを使わないもの)と、社内 IdP の SSO(SAML)には対応していません。

  • 左上でプロファイルを選んで「接続」を押します。プロファイルが1件だけなら、起動時に自動で接続します(SQL は実行しません)。
  • 接続エラーのときは、理由と「プロファイルを編集…」が出ます。
  • 接続済み・接続中のプロファイルは編集も削除もできません。管理画面の「切断」で切断してから編集します。
  1. 「管理…」→「新規追加」で、認証方式に「ブラウザでログイン」を選びます。
  2. Account と User を入れて、「ブラウザでログイン」を押します。
  3. ブラウザに Snowflake のログイン画面が開きます。ID・パスワード(MFA を設定していればそれも)で認証します。

成功するとプロファイルを登録し、そのまま接続します。3分以内にログインしないと失敗します。

  • 必須は Account と User です。表示名・Role・Warehouse は空欄でかまいません。空欄なら、表示名は「ユーザー名@Account」、Role はログインしたユーザーの既定値で登録します。Warehouse は未指定のまま登録し、接続のたびにユーザーの既定のウェアハウスを使います(既定が無ければ未選択)。
  • User はログイン画面で入力するユーザー名と同じにしてください。トークンをユーザー名ごとに保存するため、アプリ側でも事前にユーザー名が要ります。
  • 全アカウントに組み込まれたセキュリティ統合 SNOWFLAKE$LOCAL_APPLICATION を使います。管理者がセキュリティ統合を作る必要はありません。

トークンは macOS ではキーチェーン、Windows では資格情報マネージャーに保存します(ホストとユーザー名ごと)。Role はログインしたあとに USE ROLE で切り替えるので、Role ごとにログインし直すことはありません。プロファイルの Role でしか使えないウェアハウスも、Role を切り替えてから選びます。

アクセストークンが切れてもリフレッシュトークンで取り直すので、リフレッシュトークンの期限(SNOWFLAKE$LOCAL_APPLICATION の OAUTH_REFRESH_TOKEN_VALIDITY)までは、接続や SQL タブを開くたびにブラウザが開くことはありません。

プロファイルを削除しても、保存したトークンは残ります。消すときは、macOS ではキーチェーンアクセス、Windows では資格情報マネージャーで削除してください。

暗号化していない PKCS#8 形式の RSA 秘密鍵を使います。パスフレーズ付きの鍵は読めません。

  1. 鍵を作ります(例)。

    ターミナルウィンドウ
    openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
    openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
    chmod 600 rsa_key.p8
  2. 公開鍵をユーザーに登録します(Snowflake で、権限のあるロールで実行します)。

    ALTER USER <ユーザー名> SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...'; -- rsa_key.pub の BEGIN/END 行を除いた本文
  3. アプリの「管理…」でプロファイルを登録します。Account(例: myorg-myaccount)、User、秘密鍵のパスを入れ、「接続テスト」で確認してから保存します。

表示名・Role・Warehouse は任意です。空欄なら、表示名は「ユーザー名@Account」、Role と Warehouse はユーザーの既定値を使います。

秘密鍵の内容はアプリに保存しません。保存するのはファイルのパスだけで、接続のたびに読み込みます。詳しくは Snowflake のキーペア認証を参照してください。