私の目標は、パスワードの入力を求められることなくコマンドを実行できるようにすることです。 Windowsコマンドラインからこれを達成する方法はありますか? Linuxでは、標準入力などにパスワードを送信できると感じていますが、Windowsでこれを実行できるかどうかはわかりません。
ありがとう!
2つの方法があります。
set PGPASSWORD=yoursecretpassword
%APPDATA%\postgresql\pgpass.conf
ドキュメント で説明されているパスワードファイル(私の場所はC:\ Users\Grzesiek\AppData\Roaming\postgresql\pgpass.conf)内でdoc形式で指定を使用します。たとえば、データベースpostgresをローカル5432サーバーのロールpostgresとして接続するには、次を追加します。
localhost:5432:postgres:postgres:12345
私はこれをチェックし、(私にとっては)うまく動作しますが、127.0.0.1を使用しないでください。
別の便利なオプション(特に、PGサーバーが独自のクライアントマシンで実行され、これがセキュリティ上の問題を引き起こさない場合)は、サーバーでのパスワードなしのログインを許可することです(「信頼」認証モード)。
たとえば、pg_hba.conf
(DATAディレクトリ内の典型的な場所:C:\Program Files\PostgreSQL\9.0\data\
)ローカルマシンからパスワードなしでアクセスを許可します。
Host all all 127.0.0.1/32 trust
次に、と接続します
psql.exe -h 127.0.0.1 -U postgres -w [YOUR_DB_NAME]
私はそれが古い質問であることを知っていますが、私のように見える人にとっては、Windowsの解決策を見つけるのは難しいです。これを.batファイルに貼り付けると動作します(少なくとも私にとっては動作しました)。ディレクターをpostresディレクトリに変更し、環境変数PHPASSWORD
を設定して、csvファイルにcopyコマンドを実行し、環境変数をクリアしてから、ルートディレクトリに戻ります。
cd C:\Program Files\PostgreSQL\9.5\bin\
set PGPASSWORD=yourpassword
psql -d databasename -U yourusername -w -c "\COPY (select * from yourtable) TO 'c:/Users/yourdirectory/yourcsvfilename.csv' DELIMITER '|' CSV HEADER;"
set PGPASSWORD=
cd c:\
このリンク で動作する別の便利なソリューションが見つかりました。基本的に、コマンドの先頭にPGPASSWORD
を次のように設定します。
PGPASSWORD=PASSWORD psql YOUR_CODE
手順:
最初の環境変数PGPASSWORD
C:\ Windows\system32> set PGPASSWORD = clave
前
psql -d basededatos -U usuario
準備ができて、
私はこの質問が少し古いことを知っていますが、Windowsでの安全でパスワードのないPostgreSQLログオンのためのより良い手段があると信じています- [〜#〜] sspi [〜#〜] 。
同じ名前でローカルまたはドメインユーザーアカウントとPostgreSQLログインを作成します。
pg_ident.conf
、マッピングを作成します。
# MAPNAME SYSTEM-USERNAME PG-USERNAME
SSPI username@AUTHORITY loginname
usernameをWindowsユーザー名(これはドメインアカウントのsAMAccountName
属性です)に置き換え、[〜#〜] authority [〜#〜]とコンピューター名または短いドメイン名。 [〜#〜] authority [〜#〜]に何を使用すべきかわからない場合は、PostgreSQLログファイルを確認してください。ローカルアカウントの場合、これはコンピューター名になります。ドメインアカウントの場合は、おそらく短いドメイン名です。最後に、loginnameをPostgreSQLログイン名に置き換えます(混乱を避けるため、両方に同じ名前を使用することをお勧めしますユーザー名およびログイン名)。
pg_hba.conf
、ログオンを許可します。例えば。:
# TYPE DATABASE USER ADDRESS METHOD
Host all loginname 127.0.0.1/32 sspi map=SSPI
Host all loginname ::1/128 sspi map=SSPI
ドメインアカウントの場合、SPNを設定します。例えば。:
setspn -S POSTGRES/serverfqdn username
これで、指定したユーザー名を使用してWindowsにログオンし、psql.exe
など。パスワードは必要ありません。