【发布时间】:2018-10-06 17:10:10
【问题描述】:
我们在 Centos7 上安装了一个 postgres 数据库服务器(10.3),并创建了一个名为“db_name”的数据库。我们有数据库访问权限。 pg_hba.conf 中的设置如下:
# "local" is for Unix domain socket connections only
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
当我有 sudo 访问权限时,我可以访问数据库“db_name”。
[root@localhost bin]# sudo -s
[root@localhost bin]# psql -U db_name db_user
psql (10.3)
Type "help" for help.
db_name=>
当我尝试以普通 linux 用户身份访问数据库时,出现以下错误:
[linuxuser@localhost bin]# psql -U db_name db_user
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
我们想要限制某些用户 sudo 访问权限的原因是我们的报告专家需要访问数据库“db_name”,但我们不希望他们拥有 sudo 权限来执行其他操作。
我应该进行哪些设置才能使其正常工作? 谢谢!
【问题讨论】:
-
尝试 TCP 连接:
psql -h -U username dbname。另外:你没有提到你创建了一个用户,只有一个数据库。当您创建数据库时,Postgres 也不会自动为您创建用户。
标签: postgresql centos7 sudo