如何删除rails的postgres用户密码?

Posted

技术标签:

【中文标题】如何删除rails的postgres用户密码?【英文标题】:How to remove postgres user password for rails? 【发布时间】:2020-08-30 18:07:45 【问题描述】:

如何删除 postgres 用户的默认密码? config/database.yml

default: &default
  pool: <%= ENV.fetch("RAILS_MAX_THREADS")  5  %>
  timeout: 5000
  adapter: postgresql

development:
  <<: *default
  database: app_dev

/etc/postgresql/11/main/pg_hba.conf

local   all             postgres                                trust
local   all             all                                     md5

错误:rails s 上没有提供密码 这就是我为每个新的 Rails 项目使用自定义登录名/密码的原因

如何解决这个问题?我想使用没有密码的默认 postgres 用户

【问题讨论】:

【参考方案1】:

您给出的错误消息似乎是近似的,我认为 PostgreSQL 不会提供确切的错误消息。

您似乎没有指定要连接的用户名。因此,默认情况下,它可能会尝试以 PostgreSQL 用户身份连接,该用户与运行您的应用程序进程的操作系统用户具有相同的拼写。这不太可能是“postgres”。如果您想以 PostgreSQL 用户 'postgres' 的身份连接,请将其指定为用户名。不要依赖默认值,这不是您认为的那样。

【讨论】:

【参考方案2】:

尝试更改 pg_hba.conf 中的所有 USER status to trust。通过这种方式,它不需要任何密码并且可以正常工作。虽然这不是一个好习惯,但在本地服务器上是可以的。

pg_hba.conf

或者您可以通过在终端输入以下命令来更改密码。

psql -U postgres
\password
Enter new password: ***
Enter it again: ***

【讨论】:

以上是关于如何删除rails的postgres用户密码?的主要内容,如果未能解决你的问题,请参考以下文章

如果用户有依赖对象,如何在 postgres 中删除用户

如何在 Rails 3 的 Postgres 数据库中使用枚举? [关闭]

总结:修改相关postgres用户密码

在 pg_restore 中,如何使用 postgres 连接字符串来指定主机/数据库/用户名/密码?

如何在 Rails 应用程序中使用用户密码验证帐户终止?

如何使用 Postgres 在 Rails 中按天对记录进行分组