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

Thi*_*Lam 451 postgresql user-management

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

use*_*468 602

注意通过“$ 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: 
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

  • passwd --lock postgres (35认同)
  • 那么,您如何锁定用户 postgres 呢? (12认同)
  • @ultrajohn - 取决于您使用的发行版,但您可以编辑 /etc/passwd 并输入 * 而不是密码 (4认同)
  • `/etc/shadow` 是保存密码的地方@lzap。 (3认同)
  • 对了,你可以在/etc/passwd 中设置/sbin/nologin 或者在/etc/shadow 中放置* 代替密码。 (2认同)

小智 183

在命令行输入:

$ sudo -u postgres psql postgres
postgres=# \password postgres
Run Code Online (Sandbox Code Playgroud)

你会看到的:

Enter new password: 
Enter it again:
Run Code Online (Sandbox Code Playgroud)

  • 这是在安装 Postgres 后立即使用 pgadminIII 之类的工具(设置服务器配置文件时)所需要的。谢谢! (8认同)

Dav*_*osh 68

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

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
Run Code Online (Sandbox Code Playgroud)

  • 我不得不运行`sudo su - postgres`:\ (10认同)
  • @ThierryLam 您必须是 postgres 用户的“su”的 root 用户,而无需输入密码。在大多数系统上,Postgres Unix 帐户被锁定(没有密码有效),这意味着*只有* root 可以`su` 到该帐户。 (5认同)
  • @Jim Schubert:你也可以运行`sudo -u postgres`。 (3认同)
  • 使用 `sudo` 代替 `su`。 (2认同)
  • sudo -u postgres psql - 也可以使用,因此您可以一步完成。 (2认同)

M.S*_*sti 24

在 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


小智 5

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

psql -U postgres my_database

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