はじめに
SpringBootでの勉強中に起きた事象のメモです。
環境
Windows10
PostgreSQL
SpringBoot
事象
SpringBootでDB接続を行い、DBからSQL取得した値を画面表示させようとした際、以下のメッセージが表示され、DB接続ができないという事象が起きました。
### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: テーブル sample へのアクセスが拒否されました
考えたこと
アクセス拒否ということは、権限の周りで何かおかしな設定がされているはず。設定ファイルがおかしいのだろう。
解決策
DBの所有者を確認します。
<所有者の調べ方>
SQL Shell (psql)で以下のコマンドを叩く。
①postgres=# \l
これで、作成したDB一覧の確認と、所有者の確認ができます。
参考に画像おいておきます。
②使いたいDBとその所有者を確認し、
application.propertiesファイルに記載のDB接続情報とズレがないかを確認する。
application.properties
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/sample
spring.datasource.username=postgres
spring.datasource.password=XXXXXXXX
今回は、usernameとpasswordの設定が誤っていたのでそこを修正したら、エラー解消しました。
同事象が起きた際には、aplication.propertiesファイルの設定内容に記載されているものが、正しい所有者のユーザー情報になっているかを確認しておくとよさそうです。
以上です。
参考記事