ページの先頭行へ戻る
Enterprise Postgres 10 アプリケーション開発ガイド
FUJITSU Software

10.2.6 埋め込みSQLを利用する場合

接続サービスファイルの利用を推奨します。“10.2.4 接続サービスファイルを利用する場合”を参照してください。

ポイント

接続サービスファイルを利用するには、以下のいずれかの方法があります。

  • 文字列リテラルまたはホスト変数を使用して、以下のように記述する方法

    tcp:postgresql://?service=my_service

  • 環境変数PGSERVICEにサービス名を設定し、かつCONNECT TO DEFAULTを用いる方法

接続サービスファイルを利用しない場合は、以下のSQL文のtargetに、リテラルまたは変数を用いて接続先サーバの情報を指定します。

EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];

指定方法
dbname@host1,host2[:[port1][,port2]]
tcp:postgresql://host1,host2[:[port1][,port2]] [/dbname] [?target_session_attrs={read-write | prefer-read | any }][&sslmode=verify-full&sslservercertcn=<対象とするサーバ証明書のCN(Common Name)>]
  • 上記の形式をリテラルや変数を使わずに直接指定することはできません。


表10.6 設定する情報

引数

説明

host1
host2

IPアドレスまたはホスト名を指定します。IPV6形式のIPアドレスは、指定できません。

port1
port2

カンマ区切りで接続先のポート番号を指定します。
ポート番号は省略できます。省略した場合には、27500になります。

dbname

データベース名を指定します。

target_session_attrs

アプリケーションが接続するサーバの選択順を指定します。
詳細は“ターゲットサーバ”を参照してください。

sslmode

通信を暗号化する場合に指定してください。デフォルトは無効に設定されています。
sslmodeの設定値は以下のとおりです。

disable:非SSLで接続します。

allow:非SSLで接続し、失敗したらSSLで接続します。

prefer:SSLで接続し、失敗したら非SSLで接続します。

require:必ずSSLで接続します。

verify-ca:SSLで接続し、信頼できるCAから発行された証明書を使用します。(注)

verify-full:SSLで接続し、信頼できるCAから発行された証明書を使用してサーバのホスト名が証明書と一致するかを検証します。(注)

sslservercertcn

本パラメータはSSL認証(sslmode=verify-full)を行う場合のみ、有効となります。

サーバ証明書のCN(Common Name)を指定します。省略した場合は、nullとなり、hostに指定されたホスト名を使用してサーバ証明書のCN(Common Name)を認証します。

注: “verify-ca”または“verify-full”を指定する場合、CA証明書ファイルをOSのシステム環境変数PGSSLROOTCERT(接続パラメータsslrootcert)で以下のように指定してください。

例)
変数名: PGSSLROOTCERT
変数値: CA証明書ファイル


ポイント

環境変数での設定することもできます。環境変数については、“10.2.5 C言語用ライブラリ(libpq)を利用する場合”を参照してください。


注意

接続パラメータconnect_timeoutを利用する場合には、指定した各ホストへの接続に対してconnect_timeoutが適用されます。多重化されているデータベースサーバの両方がダウンしている場合、接続がタイムアウトするまでには、connect_timeoutの2倍の時間がかかります。