我得到了
Error: P1010: User `blog_user` was denied access on the database `blog_db.public`
当我第一次尝试在运行于Fedora
上的本地PostgreSQL
数据库中迁移Prisma
模式时。
下面是我的.env
文件中的DATABASE_URL
。
DATABASE_URL=postgresql://blog_user:blog_pswd@localhost:5432/blog_db
下面是我使用\l
得到的输出。
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+-----------+----------+-------------+-------------+------------+-----------------+-------------------------
blog_db | blog_user | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =Tc/blog_user +
| | | | | | | blog_user=CTc/blog_user
下面是我的pg_hba.conf
文件。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# host all all 192.168.1.1/24 md5
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
以下是我已经尝试过的查询。
GRANT CONNECT ON DATABASE blog_db TO blog_user;
ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES TO blog_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO blog_user;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO blog_user;
GRANT ALL PRIVILEGES ON DATABASE blog_db TO blog_user;
GRANT pg_write_all_data TO blog_user;
GRANT pg_read_all_data TO blog_user;
2条答案
按热度按时间lfapxunr1#
我在Github上发现了这个问题。经过多次尝试,这篇评论为我解决了这个问题:https://github.com/prisma/prisma/issues/4571#issuecomment-1220760128
基本上,我在我的.env文件中定义了影子数据库URL。像这样:
另外,我的用户名和数据库名中有一些“-”,也用“_”替换了它。我不知道这是否也造成了一些问题。
w8rqjzmb2#
将
METHOD
从ident
更改为md5
,以获得IPv6
解决了这个问题。我的
pg_hba.conf
文件: