[pgsql-jp: 35311] Re: pg_restoreパスワード

KOYAMA Tetsuji koyama @ hoge.org
2005年 4月 21日 (木) 15:23:30 JST


  小山です。

進藤さん:
> ただし、8.0.2 までは、$HOME/.pgpass で参照される為、環境変数$HOMEが
> 適切に設定されていないと誤動作します。8.0.2以降は、/etc/passwdに書か
> れたホームディレクトリを参照するように変更されたようです。

  んーと、上記は 非Windows の場合ですね。
  質問者の方は Windows でお使いですので、/etc/passwd 云々は意味を持ち
ません。(そもそも Windows で /etc/passwd とは何ぞやという感じですし。(笑))

  では、8.0.2 の場合 Windows 環境ではどうなっているかというと、

まず homedir を探すのに

|        ZeroMemory(tmppath, sizeof(tmppath));
|        if (SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, tmppath) != S_OK)
|                return false;
|        snprintf(buf, bufsize, "%s/postgresql", tmppath);

というコードを実行しています。CSIDL_APPDATA は各アプリケーションのデー
タ格納ディレクトリを指し、通常は

  C:\Documents and Settings\username\Application Data

になるそうです。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp

なので homedir は

  C:\Documents and Settings\username\Application Data/postgresql

になります。

  ちなみに .pgpass のファイル名も Windwos 環境では pgpass.conf になる
ので、

  C:\Documents and Settings\username\Application Data/postgresql/pgpass.conf

が参照されることになります。

-- 
	小山 哲志@ビート・クラフト
	koyama @ beatcraft.com
	koyama @ hoge.org



pgsql-jp メーリングリストの案内