1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

古いNpgsql.dllで新しいPostgreSQLに接続したいときのエラーと対策

Posted at

はじめに

本当は新しいNpgsql.dllを使ったほうが良いことは分かってるんだけど、上司やコストという大いなる意思のためどうしても古いやつで接続しなきゃいけない…という時のメモです。
セキュリティ的にあまり良くない対策なので実行する際は注意です。
また、記事の内容に間違いや勘違いがあった場合はご指摘いただけると助かります。

エラーが出ていた状況

  • PostgreSQL 9.1.9で動いていたシステムを最新のPostgreSQL(現時点で14.1)に変更しないといけない
  • DBは14.1に変更済
  • ソースコードやdllは変更できない

単純に当時のdllを使ってアクセスすると以下のエラーが出てしまいます。

Only AuthenticationClearTextPassword and AuthenticationMD5Password supported for now. Received: 10

AuthenticationClearTextPasswordかAuthenticationMD5Passwordじゃないと受け付けませんよという内容がPostgreSQL 14.1から出ているわけです。
なのでこれを他のも行けるように変更します。

対策:confファイルの書き換え

pg_hba.conf

PostgreSQLをインストールした際、データディレクトリとして指定したフォルダにこういう名前のファイルが作られます。これを任意のテキストエディタで開いてください。

METHOD

この列があると思います。
これの設定が「md5」とかそういう値になっているかと思います。これを全部「trust」に書き換えてください。
これはサーバに接続してくる人全員を信じて許可するという心の広い認証です。なのでこれで接続ができるようになります。
参考→PostgreSQL 認証方式

おわりに

新しいやつを使ったほうが良いどころか使うべきなのは分かってはいるんですけど、どうしてもやらなきゃいけない時というのがあるということでご勘弁ください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?