如果我不能 sudo -u postgres,我该如何与新的 Postgres 安装进行交互?

如果我不能 sudo -u postgres,我该如何与新的 Postgres 安装进行交互?

我已经在 Ubuntu 16.04 服务器上安装了 Postgres,但我在公司环境中工作并且无法执行此操作sudo -u postgres (我有 sudo 权限,但不能冒充其他用户)。

有没有其他方式可以让我与新的 Postgres 服务进行交互,或者在设置过程中将自己指定为管理员用户?

答案1

假设您有权在 下编辑 PostgreSQL 配置,您可以授予自己必要的权限/etc/postgresql

首先,检查安装了哪个版本的 PostgreSQL 以及集群/实例的名称(查看 的输出pg_lsclusters)。例如,对于 Ubuntu 16.04,版本将9.5与默认存储库一起使用,因为这是 2016 年的最新版本,并且实例将被命名为main

在这种情况下,配置位于/etc/postgresql/9.5/main(否则请根据版本/集群更改路径)。在配置中,您可以声明从 Unix 用户名到 postgres 超级用户数据库帐户的映射,例如:

/etc/postgresql/9.5/main/pg_ident.conf

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME
mymap           myusername              postgres

在 中/etc/postgresql/9.5/main/pg_hba.conf,作为第一条规则(顺序很重要):

# local      DATABASE  USER            METHOD  [OPTIONS]
local        all       postgres        peer map=mymap

然后重新加载(sudo pg_ctlcluster 9.5 main reload),Unixmyusername帐户应该能够以超级用户身份在本地连接:

$ psql -U postgres -d postgres

否则,请检查以下服务器日志/var/log/postgresql

相关内容