【问题标题】:How to solve "User `postgres` was denied access on the database `.public`";?如何解决“用户`postgres`被拒绝访问数据库`.public`”;?
【发布时间】:2022-03-05 16:42:40
【问题描述】:

我使用 prisma 和 node.js。

当我在 docker 容器中调用某些函数(例如 prisma.users.findAll())时,出现错误 User 'postgres' was denied access on the database 'my_db.public',但如果我在本地运行,则没有任何问题。

但是,我的容器是成功的,但是当我使用数据库调用任何函数时出现错误。

My docker file

FROM node:15.13.0

RUN mkdir -p /project/node_modules && chown -R node:node /project

WORKDIR /project

COPY package*.json ./
COPY --chown=node:node prisma ./prisma
COPY config ./config

RUN npm install
RUN npx prisma generate
RUN npx prisma db push --preview-feature

COPY --chown=node:node ./temp ./temp

COPY --chown=node:node . .

CMD [ "node", "index.js" ]

另外,我的数据库 my_db | postgres | UTF8 | C.UTF-8 | C.UTF-8 | 棱镜设置 DATABASE_URL=postgresql://postgres:password@172.17.0.1:5432/my_db?connect_timeout=300&connection_limit=150

【问题讨论】:

    标签: node.js postgresql docker prisma


    【解决方案1】:

    如果您可以通过在项目中运行这两个 prisma 命令中的任何一个来获得相同的错误消息,

    npx prisma db pull 
    npx prisma generate
    

    这意味着错误来自错误的DATABASE_URL 值。

    例如:用户应该是chris 而不是postgres

    // wrong user
    DATABASE_URL="postgresql://postgres:passw@localhost:5432/dbname?schema=public"
    
    // correct user
    DATABASE_URL="postgresql://chris:passw@localhost:5432/dbname?schema=public"
    

    确保您的值正确。

    【讨论】:

      猜你喜欢
      • 2016-01-31
      • 2017-05-30
      • 2021-09-24
      • 1970-01-01
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      相关资源
      最近更新 更多