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

pbossiut  于 2023-02-08  发布在  PostgreSQL
关注(0)|答案(2)|浏览(445)

我正在尝试使用PostgreSQL 9.4创建一个数据库。我在命令提示符中键入“psql”,然后它要求输入密码。我提供了我在安装过程中设置的密码,但它说身份验证失败。在线检查后,我得出结论,我需要使用名为“postgres”的超级用户,这是系统用户,其密码是我在安装过程中设置的。
我现在正在尝试将PostgreSQL设置为这个超级用户。我花了很多时间在互联网上搜索解决方案,但无法解决这个问题。我尝试了postgres ALTER USER myuser WITH SUPERUSER(我在Windows命令提示符中写的),但它说“alter”无法识别。现在,当我尝试使用PostgreSQL时,我的主要问题是我得到了错误:“角色MYUSERNAME不存在”.(这是在我编辑pg_hba.conf使其不要求密码之后)

mzmfm0qo

mzmfm0qo1#

默认情况下,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 PanelAdministrative tools中的Services选项卡重新启动PostgreSQL服务器。
然后,您可以登录到新数据库:

psql -u myusername -d myowndb

或者使用pgAdminIII之类的其他客户端。

bjp0bcyl

bjp0bcyl2#

  • 在Windows下,Postgres bin目录附带了用户命令createuser.exedropuser.exe
  • 比如说,如果运行initdb(有效的全新安装)或由于其他原因,没有超级用户(如问题所示)。
  • 也可以管理用户和超级用户(-s选项)与上述两个命令。

创建名为postgres的超级用户:

C:“程序文件”\PostgreSQL\15\bin\创建用户. exe-s postgres

删除用户:

C:“程序文件”\PostgreSQL\15\bin\删除用户. exe

相关问题