コネクションには、接続するデータベースへの接続先情報として以下を指定します。
Server=127.0.0.1;Port=27500;Database=mydb;Username=myuser;Password=myuser01;...; (1) (2) (3) (4) (5) (6)
(1) 接続するサーバのホスト名またはIPアドレスを指定します。必ず指定してください。
(2) データベースサーバのポート番号を指定します。省略した場合は、既定値の27500となります。
(3) 接続するデータベース名を指定します。
(4) データベースに接続するユーザー名を指定します。
(5) データベースに接続するユーザー名のパスワードを指定します。
(6) その他の接続情報の指定方法については、以下の表を参照してください。
.NET Data Provider(Npgsql)で接続文字列に指定可能なキーワードを以下に示します。
なお、Oracleデータベース互換機能を利用する場合は、注意が必要な設定があります。“9.2.3 アプリケーション開発用のインタフェースとの連携時の注意事項”を参照してください。
基本接続
キーワード | 説明 | 既定値 |
---|---|---|
Host | 接続するサーバのホスト名を指定します。複数のホストを指定することもできます。ホスト名は必ず指定してください。 | |
Port | サーバのTCPポート番号を指定します。 | 27500 |
Database | 接続するデータベース名を指定します。 | Usernameと同じ |
Username | データベースに接続するユーザー名を指定します。統合セキュリティを使用する場合は必要ありません。 | PGUSER |
Password | データベースに接続するユーザー名のパスワードを指定します。統合セキュリティを使用する場合は必要ありません。 | PGPASSWORD |
Passfile | パスワードを取得する、パスワードファイル(PGPASSFILE)のパスを指定します。 | PGPASSFILE |
セキュリティと暗号化
キーワード | 説明 | 既定値 |
---|---|---|
SSL Mode | サーバのサポートに応じて、SSLを使用するかどうかを、以下の値から1つ指定します。 Disable:SSL接続は行われません。 Allow:サーバが要求する場合のみSSL接続を行います。 Prefer:可能であればSSL接続を行います。 Require:SSL接続を行います。このとき接続サーバの信頼性は検証しません。これを指定するとき、"Trust Server Certificate=true"を指定する必要があります。 VerifyCA:SSL接続を行います。このとき接続サーバの信頼性を検証します。 VerifyFull: SSL接続を行います。このとき接続サーバの信頼性を検証し、それが指定したサーバであることを確認します。 | Prefer |
Trust Server Certificate | サーバ証明書を検証しないままサーバを信頼するかどうかを指定します。 | false |
SSL Certificate | サーバに送信されるクライアント証明書の場所を指定します。 | PGSSLCERT |
SSL Key | サーバに送信されるクライアント証明書のクライアントキーの場所を指定します。 | PGSSLKEY |
SSL Password | クライアント証明書のキーのパスワードを指定します。 | |
Root Certificate | サーバ証明書の検証に使用されるCA証明書の場所を指定します。 | PGSSLROOTCERT |
Check Certificate Revocation | 認証時に証明書失効リストを確認するかどうかを指定します。 | false |
Integrated Security | 統合セキュリティ(GSS/SSPI)を使用してログインするかどうかを指定します。 | false |
Persist Security Info | 接続中または接続状態になったことがある場合に、パスワードなどのセキュリティ上重要な情報が接続の一部として返されないかどうかを示すブール値を取得または設定します。 | false |
Kerberos Service Name | 認証に使用されるKerberosサービス名を指定します。 | postgres |
Include Realm | 認証に使用されるKerberosレルムを指定します。 | |
Include Error Detail | 有効にすると、データベースのエラーと通知の詳細がPostgresException.DetailとPostgresNotice.Detailに含まれます。これらには機密情報を含めることができます。 | false |
Log Parameters | 有効にすると、コマンドの実行時にパラメータ値がログに記録されます。 | false |
プーリング
キーワード | 説明 | 既定値 |
---|---|---|
Pooling | 接続プーリングを使用するかどうかを指定します。 | true |
Minimum Pool Size | 接続プールの最小サイズです。 | 0 |
Maximum Pool Size | 接続プールの最大サイズです。 | 100 |
Connection Idle Lifetime | すべての接続の数がMinimum Pool Sizeを超えた場合に、プール内 のアイドル状態の接続を切断するまでの待機時間(秒)を指定します。 | 300 |
Connection Pruning Interval | 存続期間を超えたアイドル接続のプルーニングを試行するまでに、プールが待機する秒数を指定します。Connection Idle Lifetimeを参照してください。 | 10 |
ConnectionLifetime | 接続の合計最大寿命を秒数で指定します。この値を超えた接続は、プールから返されるのではなく破棄されます。これは、実行中のサーバとオンラインになったばかりのサーバとの間でロードバランシングを強制的に実行するクラスタ構成で役立ちます。 | 0 (disabled) |
タイムアウトとキープアライブ
キーワード | 説明 | 既定値 |
---|---|---|
Timeout | 接続の確立中に、試行を終了してエラーを生成するまで待機する時間(秒)を指定します。 | 15 |
Command Timeout | コマンドの実行中に、試行を終了してエラーを生成するまでの待機時間(秒)を指定します。無限大の場合は0に設定します。 | 30 |
Internal Command Timeout | 内部コマンドを実行しようとしたときに、試行を終了してエラーを生成するまでの待機時間(秒)を指定します 。-1はCommandTimeoutを使用し、0はタイムアウトなしを意味します。 | -1 |
Cancellation Timeout | タイムアウトまたはキャンセルされたクエリのキャンセル要求に対する応答を読み取ろうとしている間に、試行を終了してエラーを生成するまでの待機時間(ミリ秒)を指定します。-1は待機をスキップし、0は無限待機を意味します。 | 2000 |
Keepalive | 接続の非アクティブ状態がここで指定した秒数を超えると、Npgsqlが キープアライブクエリを送信します。 | 0 (disabled) |
Tcp Keepalive | オーバーライドが指定されていない場合に、システムデフォルトでTCPキープアライブを使用するかどうかを指定します。 | false |
Tcp Keepalive Time | 接続の非アクティブ時間がここで指定したミリ秒数を超えると、TCPキープアライブクエリが送信されます。このオプションの使用は推奨されません。Keepaliveの使用を推奨します。これはWindowsのみでサポートされています。 | 0 (disabled) |
Tcp Keepalive Interval | 確認応答が受信されない場合に連続するキープアライブパケットが送信される間隔(ミリ秒)を指定します。Tcp KeepAlive Timeも0以外にする必要があります。これはWindowsのみでサポートされています。 | Tcp Keepalive Timeの値 |
パフォーマンス
キーワード | 説明 | 既定値 |
---|---|---|
Max Auto Prepare | 任意の時点で自動的に準備できるSQL文の最大数です。この値を超えると、最後に使用された文が再利用されます。0を指定すると、自動準備が無効になります。 | 0 |
Auto Prepare Min Usages | SQL文の使用回数がここで指定した値を超えると、SQL文が自動的に 準備されます。 | 5 |
Read Buffer Size | Npgsqlが読み込み時に使用する内部バッファのサイズです。データベースから大量のデータを転送する場合に、この値を大きくするとパフォーマンスが向上することがあります。 | 8192 |
Write Buffer Size | Npgsqlが書き込み時に使用する内部バッファのサイズを決定します。大量のデータをデータベースに転送する場合に、この値を大きくするとパフォーマンスが向上することがあります。 | 8192 |
Socket Receive Buffer Size | ソケット受信バッファのサイズです。 | システム依存 |
Socket Send Buffer Size | ソケット送信バッファのサイズです。 | システム依存 |
No Reset On Close | trueのとき、接続がプールに戻されるときに接続状態をリセットしません。場合によっては、これによりリーク状態となる代わりにパフォーマンスが向上します。ベンチマークでパフォーマンスが向上した場合にのみ使用してください。 | false |
フェイルオーバと負荷分散
キーワード | 説明 | 既定値 |
---|---|---|
Target Session Attributes | 優先して接続するサーバタイプを指定します。 any:任意の正常な接続を許容します。 primary:プライマリサーバに接続します。 stanby:スタンバイサーバに接続します。 prefer-primary:まずプライマリサーバに接続を試行しますが、リストされたホストにプライマリサーバがない場合はanyモードで再試行します。 prefer-standby:まずスタンバイサーバに接続を試行しますが、リストされたホストにスタンバイサーバがない場合はanyモードで再試行します。 read-write:デフォルトのトランザクションモードが読み取り/書き込みのサーバに接続します。 read-only:デフォルトのトランザクションモードが読み取り専用のサーバに接続します。 | PGTARGETSESSIONATTRS, Any |
Load Balance Hosts | ラウンドロビン方式による複数ホスト間の負荷分散を行うかどうかを指定します。 | false |
Host Recheck Seconds | ホストのキャッシュされた状態が有効と見なされる期間を制御します。 | 10 |
Enable Fdw Acs | 接続ルーティング機能を使用するとき、データノードの接続先のタイプを切り替えるかどうかをonまたはoffで指定します。"Target Session Attributes=prefer-primary"が指定されているとき、これをonに指定することはできません。 | off |
その他
キーワード | 説明 | 既定値 |
---|---|---|
Options | 有効なデータベース接続オプションを指定します。 (例:Options=-c synchronous_commit=local) | PGOPTIONS |
Application Name | 接続開始時にバックエンドに送信されるアプリケーション名を指定します。 | |
Enlist | コネクションを、トランザクションスコープで宣言したトランザクションに参加させるかどうかを指定します。 | true |
Search Path | スキーマ検索パスを設定します。 | なし |
Client Encoding | client_encodingパラメータを取得または設定します。 | PGCLIENTENCODING |
Encoding | データベースの文字列データのエンコード/デコードに使用する.NETエンコーディングを取得または設定します。 | UTF8 |
Timezone | セッションのタイムゾーンを取得または設定します。 | PGTZ |
EF Template Database | Entity Frameworkでデータベースを作成するときに指定するデータベーステンプレートです。 | template1 |
EF Admin Database | Entity Frameworkでデータベースを作成および削除するときに指定する管理データベースです。 | template1 |
Load Table Composites | 独立した複合型だけでなく、表の複合型定義をロードするかどうかを指定します。 | false |
Array Nullability Mode | オブジェクトインスタンスとして要求されたときに値型の配列を返す方法を設定します。使用できる値は以下です。 Never:常にnull入力不可の配列として返します。 Always:常にnull入力可能な配列として返します。 PerInstance:返される配列の方は実行時に決定されます。 | Never |