如何以用户身份运行 openERP 但使用不同的数据库用户名?

Ghe*_*Ace 3 postgresql bash python-2.7 odoo

我通过以下命令运行我的 OpenERP:

ghelo@pc$ /usr/bin/python2 openerp-server -c my_config.conf
Run Code Online (Sandbox Code Playgroud)

我有这些作为数据库凭据:

username:  odoo
password:  some_password
Run Code Online (Sandbox Code Playgroud)

我的my_config.conf文件有这些相关行:

db_host = False
db_maxconn = 64
db_name = False
db_password = some_password
db_port = False
db_template = template1
db_user = odoo
dbfilter = .*
Run Code Online (Sandbox Code Playgroud)

我的文件有这些附加,每次编辑时pg_hba.conf都会重新启动服务:postgresql

host  all ghelo all md5
local all odoo      trust
Run Code Online (Sandbox Code Playgroud)

然而,运行服务器会引发此豁免:

FATAL:  Peer authentication failed for user "odoo"
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何运行 OpenERP 服务器?

其他事实:

  1. odoo通过以下方式拥有 bash 帐户:$ sudo useradd odoo
  2. psql:# CREATE USER odoo WITH SUPERUSER LOGIN CREATEDB INHERIT PASSWORD 'some_password';
  3. psql:# CREATE DATABASE odoo OWNER odoo;

不幸的是我有这些限制:

  1. 我无法运行sudo -u odoo COMMAND任何 bash 命令来使用不同的 bash 用户。
  2. 我只能使用/usr/bin/python2.
  3. Bash 用户名和数据库用户名不能相同。

Ghe*_*Ace 5

我觉得自己很傻,我已经被rule of precedence-ed了。物质中线条的顺序pg_hba.conf。我通过以下方式解决了这个问题:

放置这一行:

local   all             odoo                                    trust
Run Code Online (Sandbox Code Playgroud)

就在之前:

# "local" is for Unix domain socket connections only
local   all             all                                     peer
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令从 root 用户重新启动 postgresql 服务: systemctl restart postgresql.service