Postgresqlの認証方法設定においての注意事項

私が担当しているシステムで、AWS移行があり、
その際、古かったPostgresqlのバージョン “9.5.19” を “16.8” にアップデートを行った。

しかし、バージョンアップ後にEXEのバッチを実行すると、下記のエラーが発生した。
「基になるプロバイダーが Open で失敗しました。Authentication method not supported (Received: 10)」

調査したところ、どうやらこのエラーメッセージは、認証方法の不一致が原因とのことだった。
基本的には、Postgresqlの認証方法 と Npgsql の認証方法が一致していないとエラーを引き起こすみたい。
原因が分かったので、それぞれの認証方法を確認したところ、以下のようになっていた。

Postgresqlの認証方法のデフォルトは「scram-sha-256」だが、認証方法の設定を「md5」に変えている

表のとおり、どちらも「md5」指定だった。なぜこの設定でも認証方法の不一致エラーになるのか…。
疑問だった為、調査を進めていたところ、上記青色のを行ったことで問題が起きていることが分かった。

その問題は、AWSでRDS(Postgresql)の認証方法を変えた際、パスワードを再設定していなかった ということだった。

RDSの認証方法を変えた後、パスワードを設定しないと、変更内容が反映されないので注意が必要です。
今回の事象はパスワードを変更しなかったことで、Postgresqlが「scram-sha-256」、Npgsqlが「md5」 となっており、認証方法の不一致が起きていた模様。

以下の対応方法に沿って実施することで、認証方法不一致のエラーが発生しなくなるので、
認証方法を変更する際の注意事項として、頭の片隅においておきたい。

■対応方法

①RDSの認証方法を変更する

②パスワードを変更する

下記コマンドを実行して、パスワードを変更する

ALTER USER mone PASSWORD ‘新しいパスワード’;