首先我是来自MySQL的PostgreSQL的新手。我刚刚从Fedora存储库安装了PostgreSQL,并根据fedora wiki页面创建postgres用户,方法是使用postgres用户并使用psql shell创建其角色。无法从php脚本访问新安装的PostgreSQL
# su - postgres
$ psql
> \password
然后,我创建了通过nginx的,这将创建一个测试数据库,并填充它提供一个测试脚本。我试图通过使用postgres用户及其密码通过同行认证登录脚本,使用以下pdo dsn:
新的PDO('pgsql:user = postgres password = ******* ***');
然而,随着SELinux的挣扎后,连接失败说的对等身份验证失败,所以我看着PostgreSQL的日志,发现:
交付的用户名(Postgres的)和athenticated用户名(阿帕奇) 不匹配。
因此,我可以推断,拥有该正试图访问数据库的过程中,用户是真实被认证的用户,所以我想我必须创建在数据库apache用户相应的角色。但为什么这样做呢?这是一种安全措施吗?有没有办法使用postgres角色或我绑定到apache角色?
好吧,我还有几个问题:是否有比md5更安全的方法?使用apache用户/角色安全吗(因为它是被认证的)?创建另一个UNIX用户然后在DBMS中创建其角色是否安全? – arielnmz
@arielnmz对于本地环回md5很好。对于非回送,我强烈建议使用SSL。目前正在进行中的工作,希望能够支持9.6,支持基于HMAC的基于多种算法的协商身份验证。我建议为每个应用程序创建一个新的PostgreSQL用户并给它一个不同的密码。不需要创建一个unix用户,也不需要这样做;这只适用于'peer'认证。 –
谢谢,还有一个问题:同行认证是否安全?最理想的是哪一种最好的方法? – arielnmz