Windows: 如何将我的 PostgreSQL 用户设置为超级用户?

Windows: how can I set my PostgreSQL user to the superuser?

我正在尝试使用 PostgreSQL 9.4 创建数据库。我在命令提示符中键入 "psql",然后它要求输入密码。我提供了我在安装过程中设置的密码,但它说身份验证失败。网上查了一下,我的结论是需要使用超级用户,名字叫"postgres",也就是系统用户,密码是我在安装时设置的

我现在正在尝试将 PostgreSQL 设置为该超级用户。我花了很多时间上网寻找解决方案,但无法解决问题。我试过 postgres ALTER USER myuser WITH SUPERUSER(我在 Windows 命令提示符中写的),但它说无法识别 "alter"。现在,当我尝试使用 PostgreSQL 时,我的主要问题是我收到错误:"role MYUSERNAME does not exist".(这是在我编辑 pg_hba.conf 以使其不要求输入密码)

默认情况下,psql 使用操作系统名称登录同名数据库。如果您想以用户 postgres 身份登录,您应该这样做:

psql -u postgres <any other options>

如果要求输入密码,请输入 postgres 用户的密码。您现在已连接到 postgres 数据库,除了创建新用户(对安装而言是全局的)和其他数据库外,您实际上不应该做任何事情。

进入控制台后,您可以创建新用户,例如:

CREATE ROLE myusername LOGIN PASSWORD secret;

以及新的数据库,例如:

CREATE DATABASE myowndb;
ALTER DATABASE myowndb OWNER TO myusername;

然后您使用 \q 从控制台注销。

为了能够使用新数据库访问 PostgreSQL,您必须编辑 pg_hba.conf 文件(示例,修改以匹配您的网络设置):

host myowndb myusername 192.168.0.0/16 md5

现在您从 Control Panel 上的 Administrative tools 中的 Services 选项卡重新启动 PostgreSQL 服务器。

然后您可以登录到您的新数据库:

psql -u myusername -d myowndb

或使用其他客户端,如 pgAdminIII