PostgreSQL使用数据库密码或用户密码。

3
我在本地的postgres服务器中导入了一个数据库。为了允许Django检索数据,我必须使用名为setup.local的文件连接到数据库。
需要指定以下内容:DB_HOST=localhostDB_NAMEDB_USERDB_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数据库是否有密码,还是只有角色/用户有密码并使用它们来访问数据库?
Andrea

没有数据库密码。仅供用户使用。 - Philipp Nies
2个回答


0

DB_HOST=localhost 是关键。查看 pg_hba.conf,你将会发现 localhost 连接通常使用 ident

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

同行身份验证方法通过从内核获取客户端操作系统用户名并将其用作允许的数据库用户名(带有可选的用户名映射)来工作。此方法仅支持本地连接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接