如何在 nixos 中配置 postgres 的授权设置?

如何在 nixos 中配置 postgres 的授权设置?

在 nixos 上,我遇到psql: FATAL: Peer authentication failed for user "postgres"类似以下错误的postgres 错误这个问题,并且想要编辑身份验证设置来解决问题,如答案中所述:

编辑 pg_hba.conf 以使用 md5 密码身份验证而不是 unix 套接字(本地连接类型)的对等身份验证,以便 Pg 接受密码身份验证

pg_hba.conf我之前在 ubuntu 上通过编辑该文件中的授权配置解决了同样的错误。但我现在的问题是nixos 似乎没有这样的pg_hba.conf编辑。

如何在nixos中进行相应的postgres授权配置更改?

我注意到github 上的 postgres.nix 文件似乎对 做了一些事情pg_hba.conf,或者至少包含该字符串,但我不明白如何从中更改我的身份验证设置。另外,我只使用了一个主要配置文件/etc/nixos/configuration.nix,这似乎是一个单独的模块,位于nixos/modules/services/databases/postgresql.nix.

答案1

按照此配置示例,我设置了NixOS选项services.postgresql.authentication

/etc/nixos/configuration.nix当我的 postgres 部分设置为时,我设法克服了“对等身份验证失败”错误

  # postgres
  services.postgresql.enable = true;
  services.postgresql.package = pkgs.postgresql94;
  services.postgresql.authentication = lib.mkForce ''
    # Generated file; do not edit!
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    local   all             all                                     trust
    host    all             all             127.0.0.1/32            trust
    host    all             all             ::1/128                 trust
    '';

相关内容