通过对等身份验证将rails应用程序连接到postgres

时间:2015-08-16 01:15:07

标签: ruby-on-rails ruby database postgresql

我正在使用postgres为我的组织设置一个简单的rails应用

用户/管理员设置

我设置了以下类型的用户

OS USER          POSTGRES USER       ASSOCIATED POSTGRES DB
postgres         postgres            postgres
user1            user1               
user2            user2               
.....            .....               .....
                 my_app              my_app
  • Postgres用户 - 默认超级用户
  • 各种系统用户 - 我公司/组织中将与my_app合作的个人用户。
  • 应用用户 - 仅限Postgres中的应用用户 ,后者又拥有同名的数据库。没有关联的OS用户。

数据库YML文件

development: &default
adapter: postgresql
database: my_app
encoding: utf8
host: localhost
min_messages: warning
pool: 2
timeout: 5000

问题

鉴于上述情况,我遇到了以下情况 -

  1. 每个用户都不能方便地输入psql来输入shell,因为Postgres会查找具有相关名称的数据库,但该数据库并不存在。有没有办法默认它使用my_app db?或者有没有办法进入shell而无需指定数据库(类似于mySQL,您在登录后选择数据库)?

  2. 在新计算机上,my_app数据库尚不存在。我希望在以rake db:create作为我自己的用户运行时创建它,但我只收到fe_sendauth: no password supplied。由于它依赖于对等身份验证,我是否必须拥有my_app的相应操作系统用户?

  3. 我还尝试通过将user:password:直接添加到database.yml来尝试修复#2中的问题。这只产生FATAL: password authentication failed for user "my_app",虽然它肯定是正确的密码。

  4. 有些不相关,但是当一个postgres用户拥有"它意味着什么?一个数据库?其他用户可以使用和编辑该数据库,还是他们都必须以所有者身份登录才能使用它? (编辑:这个问题得到了很好的回答here

  5. 谢谢!

0 个答案:

没有答案