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

Has*_*abi 3 windows postgresql command-prompt

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

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

Pat*_*ick 5

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

psql -u postgres <any other options>
Run Code Online (Sandbox Code Playgroud)

如果要求输入密码,您需要提供postgres用户的密码。您现在已连接到postgres数据库,除了创建新用户(对于安装而言是全局的)和其他数据库之外,您实际上不应该在其中执行任何操作。

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

CREATE ROLE myusername LOGIN PASSWORD secret;
Run Code Online (Sandbox Code Playgroud)

新的数据库如:

CREATE DATABASE myowndb;
ALTER DATABASE myowndb OWNER TO myusername;
Run Code Online (Sandbox Code Playgroud)

然后您可以使用 退出控制台\q

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

host myowndb myusername 192.168.0.0/16 md5
Run Code Online (Sandbox Code Playgroud)

现在,您可以从 .txt文件Services中的选项卡重新启动 PostgreSQL 服务器。Administrative toolsControl Panel

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

psql -u myusername -d myowndb
Run Code Online (Sandbox Code Playgroud)

或者使用其他客户端,例如pgAdminIII.