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


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


347
2018-02-06 04:54




可能非常相关 - “我正在安装PostgreSQL,并且不知道postgres用户的密码”。 - Milen A. Radev


答案:


警告 关于通过“$ sudo passwd postgres”更改“postgres”的UNIX密码的答案不是首选,甚至可以 DANGEROUS

这就是原因:默认情况下,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. 通过使用PostgreSQL自己的托管用户名/密码(所谓的TCP身份验证)进行TCP / IP连接(即,  UNIX密码)。

那么你 决不 想要为UNIX帐户“postgres”设置密码。默认情况下保持锁定状态。

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


485
2017-10-28 06:25



那么,你如何锁定用户postgres? - ultrajohn
@ultrajohn - 取决于您使用的发行版,但您可以编辑/ etc / passwd并输入*而不是密码 - lzap
/etc/shadow 是@lzap保存密码的地方。 - Gringo Suave
是的,您可以在/ etc / passwd中设置/ sbin / nologin,也可以在/ etc / shadow中输入*而不是密码。 - lzap
passwd --lock postgres - Stéphane


在命令行中输入:

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

你会看到的:

Enter new password: 
Enter it again:

157
2018-03-16 15:39



这是在安装Postgres之后立即使用像pgadminIII这样的工具(在设置服务器配置文件时)所需要的。谢谢! - limist


你通过用户操纵postgres postgres如此:

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

58
2018-02-06 05:02



@ThierryLam你必须是根 su postgres用户没有输入密码。在大多数系统上,Postgres Unix帐户被锁定(没有密码可以工作),这意味着 只要 根可能 su 到那个帐户。 - voretaq7
使用 sudo 代替 su。 - reinierpost
我不得不跑 sudo su - postgres :\ - Jim Schubert
@Jim Schubert:你也可以跑 sudo -u postgres。 - reinierpost
sudo -u postgres psql - 也可以让你一步到位。 - Ominus


在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


20
2017-11-18 19:25





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

psql -U postgres my_database

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


5
2018-03-07 13:44