postgres 使用数据库密码或用户密码
postgres uses a database password or a user password
我在本地 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 是 my_name(或者我可以更改所有者 ALTER DATABASE imported_db OWNER TO other_name
)。
对我来说,重要的是我必须使用用户(my_name 或 other_name)密码而不是数据库密码(即使变量名是 DB_PASSWORD).
那么问题来了:
psql 数据库有密码还是只有 roles/users 有密码并使用它们来访问数据库?
安德里亚
DB_HOST=localhost
是这里的关键。查看 pg_hba.conf
,您很可能会发现 ident
反对 localhost
连接。
https://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-IDENT
When ident is specified for a local (non-TCP/IP) connection, peer
authentication (see Section 20.3.6) will be used instead.
https://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-PEER
The peer authentication method works by obtaining the client's
operating system user name from the kernel and using it as the allowed
database user name (with optional user name mapping). This method is
only supported on local connections.
仅为 USER
和 ROLE
设置了密码。根据 ROLE 的 GRANT,一个用户可以访问多个数据库。
另请参阅:
我在本地 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 是 my_name(或者我可以更改所有者 ALTER DATABASE imported_db OWNER TO other_name
)。
对我来说,重要的是我必须使用用户(my_name 或 other_name)密码而不是数据库密码(即使变量名是 DB_PASSWORD).
那么问题来了: psql 数据库有密码还是只有 roles/users 有密码并使用它们来访问数据库?
安德里亚
DB_HOST=localhost
是这里的关键。查看 pg_hba.conf
,您很可能会发现 ident
反对 localhost
连接。
https://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-IDENT
When ident is specified for a local (non-TCP/IP) connection, peer authentication (see Section 20.3.6) will be used instead.
https://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-PEER
The peer authentication method works by obtaining the client's operating system user name from the kernel and using it as the allowed database user name (with optional user name mapping). This method is only supported on local connections.
仅为 USER
和 ROLE
设置了密码。根据 ROLE 的 GRANT,一个用户可以访问多个数据库。
另请参阅: