我在本地postgres服务器中导入了一个postgres数据库。 我必须使用名为setup.local的文件连接到数据库(以允许django检索数据)。
需要指定:DB_HOST=localhost
,DB_NAME
,DB_USER
,DB_PASSWORD
。
DB_HOST是localhost
。 DB_name是我选择导入的数据库名称(psql imported_db < downloaded_DB
)
DB_USER是我的名字(或者我可以更改所有者ALTER DATABASE imported_db OWNER TO other_name
)。
对我而言,最重要的是我必须使用用户密码(my_name或other_name)而不是数据库密码(即使变量名是DB_PASSWORD)。
所以问题是: psql数据库是否具有密码,或者只是角色/用户具有密码,并使用它们来访问数据库?
安德里亚
答案 0 :(得分:0)
DB_HOST=localhost
是这里的关键。查看pg_hba.conf
,您很可能会发现针对ident
连接的localhost
。
https://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-IDENT
为本地(非TCP / IP)连接指定ident时,对等 身份验证(请参见第20.3.6节)。
https://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-PEER
对等身份验证方法通过获取客户端的 内核中的操作系统用户名并将其用作允许的用户名 数据库用户名(带有可选的用户名映射)。这个方法是 仅在本地连接上受支持。
答案 1 :(得分:0)
仅为USER
和ROLE
设置密码。根据角色的GRANT,用户可以访问多个数据库。
另请参阅: