【发布时间】:2015-10-06 17:27:57
【问题描述】:
首先,我是来自 MySQL 的 PostgreSQL 新手。我刚刚从 Fedora 存储库安装了 PostgreSQL,并根据 fedora wiki 页面创建了 postgres 用户,方法是 su-ing 到 postgres 用户并使用 psql shell 创建其角色。
# su - postgres
$ psql
> \password
然后我创建了一个通过 nginx 提供的测试脚本,它将创建一个测试数据库并填充它。我正在尝试通过对等身份验证使用 postgres 用户及其密码从脚本登录,并使用以下 pdo dsn:
new PDO('pgsql:user=postgres password=**********');
但是,在与SELinux斗争之后,连接失败说对等身份验证失败,所以我查看了postgresql日志,发现:
交付的用户名 (postgres) 和认证的用户名 (apache) 不匹配。
所以我可以推断拥有试图访问数据库的进程的用户是正在被验证的用户,所以我假设我必须为数据库中的 apache 用户创建相应的角色。但它为什么这样做呢?这是某种安全措施吗?有没有办法使用 postgres 角色还是我绑定到 apache 角色?
【问题讨论】:
标签: php postgresql nginx pdo