Thierry Lam Asked: 2010-02-06 20:54:20 +0800 CST2010-02-06 20:54:20 +0800 CST 2010-02-06 20:54:20 +0800 CST 新安装后 postgres 的默认超级用户用户名/密码是什么? 772 我刚刚在 Ubuntu 9.10 上安装了 postgres 8.4,它从来没有要求我创建一个超级用户。是否有默认超级用户及其密码?如果没有,我如何创建一个新的? user-management postgresql 5 个回答 Voted Best Answer user716468 2011-10-28T22:25:11+08:002011-10-28T22:25:11+08:00 注意关于通过“$ sudo passwd postgres”更改“postgres”的 UNIX 密码的答案不是首选,甚至可能是危险的! 这就是为什么:默认情况下,UNIX 帐户“postgres”被锁定,这意味着它不能使用密码登录。如果您使用“sudo passwd postgres”,该帐户会立即解锁。更糟糕的是,如果您将密码设置为较弱的密码,例如“postgres”,那么您将面临巨大的安全隐患。例如,有许多机器人尝试使用用户名/密码组合“postgres/postgres”登录到您的 UNIX 系统。 你应该做的是遵循Chris James的回答: sudo -u postgres psql postgres # \password postgres Enter new password: 稍微解释一下。登录 PostgreSQL 服务器通常有两种默认方式: 通过以 UNIX 用户身份运行“psql”命令(所谓的 IDENT/PEER 身份验证),例如: sudo -u postgres psql. 请注意,sudo -u这不会解锁 UNIX 用户。 通过 TCP/IP 连接使用 PostgreSQL 自己管理的用户名/密码(所谓的 TCP 身份验证)(即,不是UNIX 密码)。 因此,您永远不想为 UNIX 帐户“postgres”设置密码。默认情况下保持锁定状态。 当然,如果您将其配置与默认设置不同,情况可能会发生变化。例如,可以将 PostgreSQL 密码与 UNIX 密码同步,并且只允许本地登录。那将超出这个问题的范围。 dcrawkstar 2011-03-17T07:39:09+08:002011-03-17T07:39:09+08:00 在命令行输入: $ sudo -u postgres psql postgres postgres=# \password postgres 你会看到的: Enter new password: Enter it again: David Mackintosh 2010-02-06T21:02:50+08:002010-02-06T21:02:50+08:00 您通过 user 操作 postgres postgres,如下所示: # su - postgres $ createdb mydb $ psql -s mydb # create user someuser password 'somepassword'; # GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser; M.S. Dousti 2014-11-19T11:25:16+08:002014-11-19T11:25:16+08:00 在 Windows 中,执行以下操作(重要:使用 Windows管理员帐户): 安装后打开<PostgreSQL PATH>\data\pg_hba.conf。 修改这两行,将“md5”改为“trust”: host all all 127.0.0.1/32 md5 host all all ::1/128 md5 重新启动 PostgreSQL 服务(可能没有必要)。 (可选)打开命令提示符,并将代码页更改为 1252: cmd.exe /c chcp 1252 登录到 PostgreSQL。将需要非密码(注意大写的 -U 参数): psql -U postgres (可选,出于安全原因推荐)更改postgres用户密码: \password postgres 并将“信任”更改回“md5” pg_hba.conf。 Marcio Mazzucato 2014-03-08T05:44:18+08:002014-03-08T05:44:18+08:00 如果您尝试访问 PostgreSQL shell,您可以键入: psql -U postgres my_database my_database您的数据库名称在哪里。
注意关于通过“$ sudo passwd postgres”更改“postgres”的 UNIX 密码的答案不是首选,甚至可能是危险的!
这就是为什么:默认情况下,UNIX 帐户“postgres”被锁定,这意味着它不能使用密码登录。如果您使用“sudo passwd postgres”,该帐户会立即解锁。更糟糕的是,如果您将密码设置为较弱的密码,例如“postgres”,那么您将面临巨大的安全隐患。例如,有许多机器人尝试使用用户名/密码组合“postgres/postgres”登录到您的 UNIX 系统。
你应该做的是遵循Chris James的回答:
稍微解释一下。登录 PostgreSQL 服务器通常有两种默认方式:
通过以 UNIX 用户身份运行“psql”命令(所谓的 IDENT/PEER 身份验证),例如:
sudo -u postgres psql
. 请注意,sudo -u
这不会解锁 UNIX 用户。通过 TCP/IP 连接使用 PostgreSQL 自己管理的用户名/密码(所谓的 TCP 身份验证)(即,不是UNIX 密码)。
因此,您永远不想为 UNIX 帐户“postgres”设置密码。默认情况下保持锁定状态。
当然,如果您将其配置与默认设置不同,情况可能会发生变化。例如,可以将 PostgreSQL 密码与 UNIX 密码同步,并且只允许本地登录。那将超出这个问题的范围。
在命令行输入:
你会看到的:
您通过 user 操作 postgres
postgres
,如下所示:在 Windows 中,执行以下操作(重要:使用 Windows管理员帐户):
安装后打开
<PostgreSQL PATH>\data\pg_hba.conf
。修改这两行,将“md5”改为“trust”:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
重新启动 PostgreSQL 服务(可能没有必要)。
(可选)打开命令提示符,并将代码页更改为 1252:
cmd.exe /c chcp 1252
登录到 PostgreSQL。将需要非密码(注意大写的 -U 参数):
psql -U postgres
(可选,出于安全原因推荐)更改
postgres
用户密码:\password postgres
并将“信任”更改回“md5”
pg_hba.conf
。如果您尝试访问 PostgreSQL shell,您可以键入:
psql -U postgres my_database
my_database
您的数据库名称在哪里。