【问题标题】:Accessing postgres without being root users非 root 用户访问 postgres
【发布时间】:2013-03-04 12:46:53
【问题描述】:

我在 postgres 中创建了一个名为“databaseName”的 postgres 数据库。现在我可以通过

访问这个data2database
 su - postgres

然后输入我的密码

然后我通过:psql databaseName进入数据库

我已经通过以下方式创建了这个数据库的用户:

   createuser -P userName1

现在我不希望数据库的用户以 root 用户身份访问数据库。现在,当用户尝试以

身份登录 postgres 时
 su - postgres -u userName1 
        or through
 psql databaseName -u userName1

我收到错误...有人可以指导我了解用户如何在不成为 root 用户的情况下访问 postgres 和数据库?

【问题讨论】:

  • 请不要写“我出错了”。什么错误?确切地?将确切的错误文本复制并粘贴到您的问题中。
  • @CraigRinger 当然我会记住这一点

标签: sql postgresql postgresql-9.1 postgresql-9.2


【解决方案1】:

pg_hba.conf 配置为接受通过unix 套接字的peer 连接或通过host (tcp) 连接的ident 连接。如果您愿意,可以使用md5 来代替密码验证。

默认情况下psql 将使用与您本地操作系统用户名相同的用户名进行连接;这可以被-U 标志覆盖,例如:

psql -U myusername thedatabase

请注意,它是-U 而不是-u(大写)。

这在 PostgreSQL 文档中有详细介绍;见:

顺便说一句,如果你想以postgres 用户而不是su'ing 身份运行命令,你可以写:

sudo -u postgres psql

【讨论】:

  • 非常感谢您的回复。我是 postgres 的新手,因此我不知道如何配置 ph_hba.conf。如果您能指导我进行配置,我将不胜感激。我正在通过命令行界面在 linux 服务器上工作。再次衷心感谢您的回复
  • @user1778824 阅读文档的“客户端身份验证”一章,这听起来解释了您需要的一切。我不能只告诉你如何配置它;如果有一种正确的设置方法,我们根本不会将其设置为配置文件,我们只会让服务器自动以这种方式工作。这是一个配置文件,因为不同的人希望 Pg 在不同的情况下以不同的方式工作。
  • @user1778824 在不知道您的确切需求和情况的情况下,很难说出您需要什么 - 特别是因为您没有提到您的发行版,显示您当前的pg_hba.conf,说明您想如何验证用户,等
猜你喜欢
  • 2018-04-03
  • 2016-08-17
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2013-05-01
  • 2019-07-27
  • 1970-01-01
相关资源
最近更新 更多