首页 > 解决方案 > 如何创建一个名称与操作系统用户不同的 Postgres 11 用户/角色?

问题描述

我是 PostgreSQL 的新手,我正在尝试在 Postgres 11(在 CentOS7 上运行)上创建一个名为(例如)“json_docs_admin”(密码相同)的用户/角色,我可以在操作系统用户下使用(例如)“app_user”本地连接到数据库。

我尝试使用“postgres”用户和命令“psql -d template1”连接到 Postgres,并运行以下命令:

template1=# create role json_docs_admin with login password 'json_docs_admin';
CREATE ROLE
template1=# create database json_docs owner=json_docs_admin;
CREATE DATABASE
template1=# GRANT ALL PRIVILEGES ON DATABASE json_docs TO json_docs_admin;
GRANT

我已经更改了 /var/lib/pgsql/11/data/pg_hba.conf 以便可以在服务器上建立本地连接,并且我已经重新启动了 postgresql 服务。

然后,回到“app_user”用户下,当我尝试连接到数据库时,出现以下错误:

$psql -d json_docs -U json_docs_admin
Password for user json_docs_admin: 
psql: FATAL:  database "json_docs" does not exist

谁能让我知道我做错了什么?谢谢。

标签: postgresqlcentos7rolesuser-management

解决方案


推荐阅读