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


Answers:


533

注意关于通过“ $ 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服务器的方式:

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

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

因此,您永远都不想为UNIX帐户“ postgres”设置密码。使其默认保持锁定状态。

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


11
那么,如何锁定用户postgres?
ultrajohn

3
@ultrajohn-取决于您使用的发行版,但是您可以编辑/ etc / passwd并输入*代替密码
lzap 2012年

3
/etc/shadow密码保存在@lzap的位置。
Gringo Suave 2012年

2
正确,您可以在/ etc / passwd中设置/ sbin / nologin或在* / etc / shadow中放置*而不是密码。
lzap 2012年

34
passwd --lock postgres
斯特凡

166

在命令行中输入:

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

你会看到的:

Enter new password: 
Enter it again:

7
这是在安装Postgres本身后立即使用pgadminIII之类的工具(设置服务器配置文件时)所需要的。谢谢!
limist 2011年

64

您可以通过user操作postgres postgres,如下所示:

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

5
@ThierryLam您必须是root su用户,而无需输入密码。在大多数系统上,Postgres Unix帐户是锁定的(没有密码可用),这意味着该帐户只能是 root用户su
voretaq7

2
使用sudo代替su
reinierpost 2014年

8
我不得不跑步sudo su - postgres:\
Jim Schubert

3
@Jim Schubert:您也可以运行sudo -u postgres
reinierpost 2014年

1
sudo -u postgres psql-也可以工作,因此您可以一步完成。
Ominus

21

在Windows中,执行以下操作(重要:使用Windows 管理员帐户):

  1. 安装后,打开<PostgreSQL PATH>\data\pg_hba.conf

  2. 修改这两行,然后将“ md5”更改为“ trust”:

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. 重新启动PostgreSQL服务(可能没有必要)。

  4. (可选)打开命令提示符,并将代码页更改为1252:

    cmd.exe /c chcp 1252

  5. 登录到PostgreSQL。将需要非密码(请注意大写的-U参数):

    psql -U postgres

  6. (可选,出于安全考虑,建议使用)更改postgres用户密码:

    \password postgres

    并在中将“信任”更改回“ md5” pg_hba.conf


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.