ページの先頭行へ戻る
Enterprise Postgres 10 Community Edition ユーザーズガイド
FUJITSU Software

B.2.4 C言語用ライブラリ(libpq)

C言語用ライブラリの利用方法について説明します。

B.2.4.1 開発環境

開発、および実行するアーキテクチャのFUJITSU Enterprise Postgres Clientパッケージをインストールしてください。

参照

C言語アプリケーションの開発に必要なCコンパイラについては、以下を参照してください。

B.2.4.2 セットアップ

C言語ライブラリを利用する場合の環境設定、および通信データの暗号化方法について説明します。

B.2.4.2.1 環境設定

libpqを使用するアプリケーションを実行するためには、以下のように環境変数を設定してください。

LinuxLinuxの場合
WindowsWindows(R)の場合
B.2.4.2.2 メッセージの言語およびアプリケーションが使用する符号化方式の設定

アプリケーション実行環境の言語の設定、およびアプリケーションが使用する符号化方式の設定について説明します。

言語の設定

アプリケーション実行環境の言語設定は、データベースサーバのメッセージロケールの設定と合わせる必要があります。

アプリケーションが出力するメッセージの中には、アプリケーション側のメッセージに、データベースサーバから送られたメッセージを埋め込む場合があります。このとき、アプリケーション側のメッセージは、アプリケーション側のメッセージロケールに従い、データベースサーバから送られるメッセージは、データベースサーバ側のメッセージロケールに従います。そのため、両方のメッセージロケールが一致していない場合には、言語や符号化方式が混在します。符号化方式が一致しない場合には、文字化けが発生します。

符号化方式の設定

アプリケーションに埋め込まれ、データベースに渡される符号化方式と、実行時のクライアント符号化方式の設定は同じにしてください。データベースサーバ側で正しく符号化方式を変換できなくなります。

アプリケーションの符号化方式は、以下のいずれかの方法で設定してください。

参照

設定できる符号化方式を表す文字列は、“PostgreSQL文書”の“サーバの管理”の“サポートされる文字セット”を参照してください。

例えば、Unicode、8ビットの場合は、“UTF8”という文字列を設定します。

ポイント

コマンドプロンプトに結果を出力する際、文字化けする場合があります。文字化けした場合は、コマンドプロンプトのフォントの設定を見直してください。

B.2.4.2.3 通信データを暗号化する場合の設定

通信データの暗号化機能を利用してリモートアクセスを行う場合は、以下のいずれかの方法で設定してください。

  

環境変数により外部から設定する場合

環境変数PGSSLMODEに「require」、「verify-ca」、「verify-full」のいずれかを指定してください。

さらに、データベースサーバの成りすましを防御するためには、環境変数PGSSLROOTCERTおよびPGSSLCRLの各パラメータの設定が必要です。

参照

環境変数の詳細については、“PostgreSQL文書”の“クライアントインタフェース”の“環境変数”を参照してください。

接続URIに指定する場合

接続URIの“sslmode”パラメータに「require」、「verify-ca」、「verify-full」のいずれかを指定してください。

さらに、データベースサーバの成りすましから防御するためには、“sslcert”、“sslkey”、“sslrootcert”、“sslcrl”の各パラメータの設定も必要です。

  

参照

通信データの暗号化についての詳細は、“PostgreSQL文書”の“サーバの管理”の“SSLによる安全なTCP/IP接続”を参照してください。

B.2.4.3 データベースへの接続

ポイント

接続サービスファイルを用いて接続先を指定することを推奨します。接続サービスファイルには、接続先情報やコネクションに対して設定する各種のチューニング情報を1セットとして名前(サービス名)を定義します。データベース接続時には、接続サービスファイルに定義されたサービス名を用いることで、接続情報の変更によるアプリケーションの修正が不要になります。

“PostgreSQL文書”の“クライアントインタフェース”の“接続サービスファイル”を参照してください。

参照

“PostgreSQL文書”の“クライアントインタフェース”の“データベース接続制御関数”を参照してください。