Node.jsオプションリファレンス¶
新しい Connection オブジェクトを構築するときは、接続のオプション(例: 使用するアカウント識別子、ユーザー名など)を指定する JavaScript オブジェクトで渡します。次のセクションでは、設定できるオプションについて説明します。オプションを設定するには、 JavaScript オブジェクトのプロパティ名としてオプション名を指定します。
接続オプション
その他のオプション
必須の接続オプション¶
account使用する アカウント識別子。
region(廃止)アカウントが存在する リージョン の ID。
注釈
このオプションは廃止されており、下位互換性のためにのみここに含まれています。Snowflakeは、 アカウントロケーターを識別子として使用 で説明されているように、アカウント識別子へのリージョン埋め込み(例: 以下)に移行することをお勧めします。
var connection = snowflake.createConnection({ account: "myaccount.us-east-2", username: "myusername", password: "mypassword" });
加えて、 サーバーに対する認証のオプション を指定する必要があります。
認証オプション¶
applicationSnowflakeに接続するクライアントアプリケーションの名前を指定します。
authenticatorユーザーログイン認証情報の検証に使用する認証方式を指定します。これは、次のいずれかの値に設定できます。
値
説明
SNOWFLAKE内部Snowflake認証方式を使用します。
passwordオプションも設定する必要があります。EXTERNALBROWSER自分のウェブブラウザーを使用 して、Okta、 AD FS、またはアカウントに定義されている他の SAML 2.0準拠の識別プロバイダー(IdP)で認証します。
https://<Oktaアカウント名>.okta.comOAUTH認証には OAuth を使用します。また、
tokenオプションを OAuth トークンに設定する必要があります(以下を参照)。SNOWFLAKE_JWTキーペア認証を使用します。キーペア認証とキーペアローテーションを使用する をご参照ください。
USERNAME_PASSWORD_MFA多要素認証(MFA)を使用する MFA パスコードを使用する をご参照ください。
:codenowrap:
OAUTH_AUTHORIZATION_CODEウェブブラウザと選択した ID プロバイダ (IdP として Snowflake を含む) を使用して、 OAuth 認証コードを使用して手動で認証します。詳細については、 OAuth 2.0認証コードフローを使用する をご参照ください。
:codenowrap:
OAUTH_CLIENT_CREDENTIALS選択した ID プロバイダーで OAuth クライアント認証コードを使用して自動的に認証します (IdP として Snowflake はクライアント認証フローをサポートしていません)。詳細については、 OAuth 2.0クライアント認証情報フローを使用する をご参照ください。
:codenowrap:
PROGRAMMATIC_ACCESS_TOKENプログラムのアクセストークン(PAT)で認証します。codenowrap:
トークンまたは:codenowrap:` パスワード` オプションからトークンを読み取ります。詳細については、 認証のためのプログラム アクセス トークンの使用 をご参照ください。:codenowrap:
WORKLOAD_IDENTITYワークロードIDフェデレーション(WIF) 認証コードで認証します。
デフォルト値は
SNOWFLAKEです。認証の詳細については、 フェデレーション認証の管理/使用 および クライアント、ドライバー、およびコネクタ をご参照ください。
usernameSnowflakeユーザーまたはIDプロバイダーのログイン名(例:Oktaのログイン名)。
authenticatorオプションをSNOWFLAKE、SNOWFLAKE_JWT、 またはOktaアカウント用の Okta URL エンドポイント (例:https://<Oktaアカウント名>.okta.com)に設定した場合は、このオプションを設定します。authenticatorオプションを設定しない場合は、この値を設定する必要があります。passwordユーザーのパスワード。
authenticatorオプションをSNOWFLAKEを設定するか、 Oktaアカウント用のOkta URL エンドポイント (例:https://<Oktaアカウント名>.okta.com)を設定した場合や、authenticatorオプションを未設定にした場合は、このオプションを設定します。authenticatorのオプションをPROGRAMMATIC_ACCESS_TOKENに設定した場合、このオプションでプログラムのアクセストークンを渡すことができます。
token認証に使用する OAuth トークンまたはプログラムのアクセストークンを指定します。
authenticatorのオプションをOAUTHまたは:codenowrap:PROGRAMMATIC_ACCESS_TOKENに設定した場合、このオプションを設定します。privateKeyキーペア認証の秘密キー( PEM 形式内)を指定します。詳細については、 キーペア認証とキーペアローテーションを使用する をご参照ください。
privateKeyPath秘密キーファイル(例:
rsa_key.p8)に対するローカルパスを指定します。詳細については、 キーペア認証とキーペアローテーションを使用する をご参照ください。privateKeyPassファイルが暗号化されている場合に、秘密キーファイルを復号化するためのパスコードを指定します。詳細については、 キーペア認証とキーペアローテーションを使用する をご参照ください。
oauthClientIdSnowflake統合用にIDプロバイダーが提供する
client idの値(Snowflakeセキュリティ統合メタデータ)。oauthClientSecretIDプロバイダーがSnowflake統合用に提供する
client secretの値(Snowflakeセキュリティ統合メタデータ)。oauthAuthorizationUrl認証コードをドライバーに提供する ID プロバイダーエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は
serverまたはaccountパラメーターから取得されます。oauthTokenRequestUrlドライバーにアクセストークンを供給する ID プロバイダーのエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は
serverまたはaccountパラメーターから取得されます。oauthScopeID プロバイダー承認リクエストで要求された範囲。デフォルトでは、ロールから派生します。複数のスコープが必要な場合、値はスペースで区切られた複数のスコープのリストでなければなりません。
oauthRedirectUri認証コードリダイレクトに使用する URI (Snowflakeセキュリティ統合メタデータ)。デフォルト:
http://127.0.0.1:{randomAvailablePort}。workloadIdentityProvider- 説明:
ワークロードIDプロバイダーのプラットフォーム。可能な値は次のとおりです。
AWS、AZURE、GCPおよび:codenowrap:OIDC。
passcodeログインで多要素認証(MFA)を使用するときにDuoによって提供される
passcodeを指定します。詳細については、 MFA パスコードを使用する をご参照ください。passcodeInPasswordMFA
passcodeをログインパスワードに埋め込むかどうかを指定します。trueの場合、 MFA パスコードがpasswordの末尾に付加されます。デフォルト:false。詳細については、 MFA パスコードを使用する をご参照ください。
追加の接続オプション¶
accessUrlSnowflakeに接続するための完全修飾エンドポイントを指定します。
accessUrlには、https://myaccount.us-east-1.snowflakecomputing.comと同様に、完全なスキーマとホスト、およびオプションのポート番号が含まれます。注釈
accessUrlオプションを使用する場合は、accountオプションで指定された値は使用されません。browserActionTimeoutSSO 認証に関連するブラウザー操作のタイムアウトをミリ秒単位で指定します。デフォルト値は120000(ミリ秒)です。
openExternalBrowserCallbackSSO 認証用のブラウザウィンドウを開きます。デフォルトでは、ドライバーはnpm
openパッケージを使用します。例:var connection = snowflake.createConnection({ ..., openExternalBrowserCallback: () => { // your custom code to open browser window instead of our default implementation } });
clientConfigFile簡単なログ 機能に関連するクライアント構成ファイルへのパス。
clientRequestMFATokenドライバーが、サーバーに新しいトークンを要求する代わりに、ローカル認証情報ストレージ内の MFA トークンを認証に使用するかどうかを設定します。デフォルト:
false。clientStoreTemporaryCredentialドライバーが、サーバーに新しいトークンを要求する代わりに、ローカル認証情報ストレージ内の SSO トークンを認証に使用するかどうかを設定します。デフォルト:
false。clientSessionKeepAliveデフォルトでは、クライアント接続は通常、最新のクエリが実行されてから約3~4時間後にタイムアウトします。
clientSessionKeepAliveオプションがtrueに設定されている場合、クエリが実行されなくても、サーバーへのクライアントの接続は無期限に維持されます。このオプションのデフォルト設定は
falseです。このオプションを
trueに設定する場合は、プログラムの終了時にプログラムがサーバーから明示的に切断されていることを確認します。切断せずに終了しないでください。clientSessionKeepAliveHeartbeatFrequency(
clientSessionKeepAliveがtrueの場合にのみ適用)ハートビートメッセージの頻度(秒単位の間隔)を設定します。
接続ハートビートメッセージは、クエリを置き換え、接続のタイムアウトカウントダウンを再開するものと大まかに考えることができます。つまり、少なくとも4時間の非アクティブ後に接続がタイムアウトすると、ハートビートはタイマーをリセットし、最新のハートビート(またはクエリ)の少なくとも4時間後までタイムアウトが発生しないようにします。
デフォルト値は3600秒(1時間)です。有効な値の範囲は900~3600です。通常、タイムアウトは少なくとも4時間後に発生するため、通常、接続を維持するには1時間ごとのハートビートで十分です。3600秒未満のハートビート間隔が必要になることはほとんどありません。
credentialCacheDirトークン・キャッシングが有効な場合に、認証情報キャッシュを格納するディレクトリを設定します。デフォルト: ユーザーの
$HOMEディレクトリ。database接続後にセッションに使用するデフォルトのデータベース。
disableSamlUrlCheckSAML レスポンスの検証チェックを無効にするかどうかを指定します。デフォルト:
false。hostドライバーが接続する必要のあるホストアドレス。
keepAlive新しい接続リクエストを受信した直後に、ソケットでキープアライブ機能を有効にするかどうかを指定します。
デフォルトでは、 HTTP プロトコルはリクエスト毎に新しい TCP 接続を作成します。このパラメーターを有効にすると、ドライバーは、リクエストごとに新しい接続を作成する代わりに、複数のリクエストに対して接続を再利用することができます。
デフォルト値は
trueです。noProxyプロキシサーバーをバイパス(例:
*.amazonaws.comが Amazon S3のアクセスをバイパス)して、ドライバーが直接接続する必要があるホストのリストを指定します。複数のホストの場合は、ホスト名をパイプ記号(|)で区切ります。アスタリスクをワイルドカードとして使用することもできます。例:noProxy: "*.amazonaws.com|*.example.com"proxyHost認証されたプロキシサーバーのホスト名を指定します。
proxyPasswordproxyUserにより指定されたユーザーのパスワードを指定します。proxyPort認証されたプロキシサーバーのポートを指定します。
proxyProtocol認証されたプロキシサーバーへの接続に使用するプロトコルを指定します。このプロパティを使用して HTTP (
httpまたはhttps)のプロトコルを指定します:。proxyUser認証されたプロキシサーバーへの接続に使用されるユーザー名を指定します。
queryTagステートメントをタグ付けするために接続に使用するオプションの QUERY_TAG 。
role接続後にセッションに使用するデフォルトのセキュリティロール。
schema接続後にセッションに使用するデフォルトのスキーマ。
timeout応答なしで接続を維持するためのミリ秒数。デフォルト:60000(1分)。
warehouse接続後にセッションに使用するデフォルトの仮想ウェアハウス。クエリの実行、データのロードなどに使用されます。
一部の接続オプションは、指定されたデータベースオブジェクト(データベース、スキーマ、ウェアハウス、またはロール)がシステムに既に存在することを前提としています。指定したオブジェクトが存在しない場合は、接続中にデフォルトは設定されません。
接続後、オプションの接続オプションはすべて USE <オブジェクト> コマンドで設定または上書きすることもできます。
構成オプション¶
arrayBindingThresholdドライバーが一括挿入操作で使用するバインドの最大数を設定します。デフォルト値は65280です。
cwdGET および PUt の操作に使用する現在の作業ディレクトリがコネクターディレクトリと異なる場合。
representNullAsStringNullfetchAsStringメソッドがnull値を返す方法を指定します。true(有効): null値を文字列「NULL」として返します。false(無効): null値をnullとして返します。
デフォルト:
true(有効)resultPrefetchクライアントが大きな結果セットをプリフェッチするために使用するスレッドの数。有効な値:1~10。
rowMode重複した列名を含む結果を返す方法を指定します。値には次が含まれます。
array: 結果セットを配列として返し、重複する列名を含めます。object: 結果セットをオブジェクトとして返し、重複する列名を省きます。object_with_renamed_duplicated_columns: 結果セットをオブジェクトとして返し、重複する名前にはサフィックスをつけて一意にします。
デフォルト値は
objectです。
xmlParserConfig オプション¶
ドライバーのバージョン1.7.0以降では、次の fast-xml-parser ライブラリ構成オプションを使用して、 XML コンテンツを持つ列をクエリするときにドライバーが XML ドキュメント属性を処理する方法をカスタマイズすることができます。
fast-xml-parser をダウンロードできます。
デフォルトでは、Node.jsドライバーは、クエリから XML データを返すときに XML 要素属性を無視します。たとえば、以下の XML コンテンツでは、 <animal> 要素に id 属性が含まれています。
<exhibit name="Polar Bear Plunge">
<animal id="000001">
<scientificName>Ursus maritimus</scientificName>
<englishName>Polar Bear</englishName>
<name>Kalluk</name>
</animal>
<animal id="000002">
<scientificName>Ursus maritimus</scientificName>
<englishName>Polar Bear</englishName>
<name>Chinook</name>
</animal>
</exhibit>
デフォルトでは、Node.jsドライバーは結果セットを返すときに id 属性を無視し、以下の出力を返します。属性名と値が含まれていないことに注意してください。
{
exhibit: {
animal: [
{
"scientificName": "Ursus maritimus",
"englishName": "Polar Bear",
"name": "Kalluk",
},
{
"scientificName": "Ursus maritimus",
"englishName": "Polar Bear",
"name": "Chinook"
}
]
}
}
これらのオプションの設定方法については、 XML データの解析 をご参照ください。
ドライバーが XML データを解析する方法に及ぼす影響を説明するために、各オプションの説明は、この例でどのように影響するかを示しています。
ignoreAttributes解析時に XML 属性を無視するかどうか。他のパーサーオプションを使用する場合は、
ignoreAttributes: falseにセットする必要があります。デフォルト:
truefalseに設定すると、ドライバーは以下の出力を返します。id属性が出力に含まれるようになることに注意してください(デフォルトでは、ドライバーは属性名にプレフィックス@_を付けます)。{ exhibit: { animal: [ { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Kalluk", "@_id": "000001" }, { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Chinook", "@_id": "000002" } ], "@_name": "Polar Bear Plunge" } }
alwaysCreateTextNodeタグ名でプロパティを作成し、値を直接割り当てるかどうか。
デフォルト:
falsetrueに設定すると、ドライバーは以下の出力を返します。{ exhibit: { animal: [ { "scientificName": { "#text": "Ursus maritimus" }, "englishName": { "#text": "Polar Bear" }, "name": { "#text": "Kalluk" }, "@_id": "000001" }, { "scientificName": { "#text": "Ursus maritimus" }, "englishName": { "#text": "Polar Bear" }, "name": { "#text": "Chinook" }, "@_id": "000002" } "@_name": "Polar Bear Plunge" ] } }
attributeNamePrefix属性名の前に付加する文字列。
デフォルト: "@_"
属性名のプレフィックスなしを指定するために
""を設定すると、ドライバーは以下の出力を返します。{ exhibit: { animal: [ { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Kalluk", "id": "000001" }, { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Chinook", "id": "000002" } ], "name": "Polar Bear Plunge" } }
attributesGroupName指定されたプロパティ名の下にタグのすべての属性をグループ化。
デフォルト: 未設定
@@,という名前の要素ですべてのタグ属性をグループ化するために@@を設定すると、ドライバーは以下の出力を返します。{ exhibit: { "@@": { "@_name": "Polar Bear Plunge" } animal: [ { "@@": { "@_id": "000001" }, "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Kalluk" }, { "@@": { "@_id": "000002" }, "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Chinook" } ] } }