如何在没有用户名和密码的情况下使用对等身份验证使 Symfony 向 PostgreSQL 进行身份验证

时间:2021-07-25 17:59:19

标签: php postgresql symfony pdo doctrine-orm

我已将 PHP 配置为通过 Unix 套接字使用 19.3.7. Peer Authentication 对 PostgreSQL 进行身份验证,并且它适用于本机 PHP,以及在不使用 Symfony 的情况下使用 Doctrine 时,但在使用 Symfony 时我无法让它工作。< /p>

PHP 是使用 FPM 设置的,我创建了一个侦听给定套接字并由 Linux 用户 redux 运行的池,还有一个 PostgreSQL 用户和数据库也名为 testing

以下原生 PHP 脚本返回的结果没有错误,所以我知道 PHP、FPM 和 PostgreSQL 已正确设置,可以使用对等身份验证建立连接,而无需 PostgreSQL 用户名或密码。

testing

以下使用 Doctrine 但不使用 Symfony 的脚本返回的结果没有错误,所以我知道 Doctrine 能够使用对等身份验证建立连接,而无需 PostgreSQL 用户名或密码。

$pdo = new PDO("pgsql:dbname=testing");
$rs = $pdo->query('SELECT * FROM company')->fetchAll();

如何使用 Symfony 建立相同的连接?

我预计以下内容会起作用,但是结果是 $pdo = EntityManager::create(['driver' => 'pdo_pgsql','dbname' => 'testing'], Setup::createAnnotationMetadataConfiguration([__DIR__."/../src"], true, null, null, false))->getConnection(); $rs = $pdo->query('SELECT * FROM company')->fetchAll();

An exception occurred in driver: SQLSTATE[08006] [7] fe_sendauth: no password supplied

没有向 journalctl 提供任何线索,但 monolog 报告了以下内容:

doctrine:
    dbal:
        driver: pdo_pgsql
        dbname: testing
        server_version: 13

0 个答案:

没有答案