全新安装后,postgres 的默认超级用户名/密码是什么?

全新安装后,postgres 的默认超级用户名/密码是什么?

我刚刚在 Ubuntu 9.10 上安装了 postgres 8.4,它从未要求我创建超级用户。是否有默认超级用户及其密码?如果没有,我该如何创建一个新的?

答案1

警告关于通过“$ sudo passwd postgres”更改“postgres”的 UNIX 密码的答案并不受欢迎,甚至可以危险的

原因如下:默认情况下,UNIX 帐户“postgres”是锁定的,这意味着无法使用密码登录。如果您使用“sudo passwd postgres”,该帐户将立即解锁。更糟糕的是,如果您将密码设置为较弱的密码,例如“postgres”,那么您将面临巨大的安全隐患。例如,有许多机器人尝试使用用户名/密码组合“postgres/postgres”登录您的 UNIX 系统。

你应该做的是克里斯·詹姆斯的回答:

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

稍微解释一下。通常有两种默认方式登录 PostgreSQL 服务器:

  1. 通过以 UNIX 用户身份运行“psql”命令(所谓的 IDENT/PEER 身份验证),例如: sudo -u postgres psql。请注意,sudo -u不会解锁 UNIX 用户。

  2. 通过 TCP/IP 连接,使用 PostgreSQL 自己管理的用户名/密码(所谓的 TCP 身份验证)(即不是UNIX 密码)。

那么你绝不想要设置 UNIX 帐户“postgres”的密码。保留默认锁定状态。

当然,如果您将其配置为与默认设置不同,情况可能会发生变化。例如,可以将 PostgreSQL 密码与 UNIX 密码同步,并且仅允许本地登录。这超出了这个问题的范围。

答案2

在命令行中输入:

$ sudo -u postgres psql postgres
postgres=# \password postgres

你会看到的:

Enter new password: 
Enter it again:

答案3

你可以通过用户来操作postgres postgres,就像这样:

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;

答案4

如果您尝试访问 PostgreSQL shell,您可以输入:

psql -U postgres my_database

my_database您的数据库名称在哪里。

相关内容