基本的PostgreSQL问题 - 我还需要其他用户吗?

时间:2012-12-09 18:06:15

标签: sql postgresql

我默认使用apt-get安装了postgreSQL,我相信它已自动为我添加了一个名为“postgres”的用户。

  1. 我只有一个我要在postgres上排序的数据库,所以也是 有没有为这个数据库创建另一个用户帐户或 我应该保持与postgreSQL一起安装的那个 “postgres的”?

  2. 为我制作的用户帐号postgres是给定的 那种默认密码?是否建议我自己投入 密码?

2 个答案:

答案 0 :(得分:1)

编辑:我误解了这个问题,OP询问的是内部用户,而不是系统用户

原始答案:运行服务器的系统用户

作为标准安全实践,在Linux机器上运行的大多数服务都有自己的独立用户。如果postgreSQL服务器遭到入侵的可能性很小 - 要么你犯了错误,要么postgresql中存在漏洞,或者其他什么 - 攻击者只能访问运行postgresql服务器的用户所允许的资源。如果该用户是root用户,则会丢失该计算机。如果该用户是您的用户,那么您的损失就不那么多了。如果该用户是postgres,只有最少的访问权限,那么您就会丢失数据库,而这就是全部。

所以:

  1. 您只需要一个用户使用postgreSQL服务器,无论服务器进程托管的是什么。如果(听起来像是一个)自动为您创建了一个用户,那么您就完成了这一步骤。如果你需要手动制作一个(听起来像你没有),你还必须更改权限,以便新用户只能访问它所需的内容。

  2. 该帐户很可能无法直接登录;如果它有一个密码,那就是很多随机数据。要使用该帐户,您需要以root用户身份开始,然后自愿将自己“降​​级”为postgres。在服务器的情况下,root以“postgres”的名义启动服务器。我建议不要管它。

  3. 第二个答案:数据库用户

    一旦服务器运行,服务器将保留自己的一组用户,以便访问数据库。您可以使用的最简单的体系结构就是让具有完全权限的基本用户完成所有操作。虽然这有效,但不建议您是否在外部托管。更优选的解决方案是拥有一组用户,类似于操作系统的设置方式:一组用户执行特定任务,一个管理员用户来统治所有用户。那说:

    1. 你不必这样做,但如果你要在任何地方举办这个活动(如果你不仅仅是为个人用品而且它可以通过世界访问),我会建议额外用户使用有限的权限

    2. http://archives.postgresql.org/pgsql-admin/2001-10/msg00192.php

        

      默认没有密码;使用ALTER USER创建一个。

           

      除非设置pg_hba.conf以使用密码,否则密码不会生效。如果   它是,你没有为postgres分配密码,你不会   能够以postgres连接。

答案 1 :(得分:1)

重新1)

在安装期间创建的默认数据库用户是“超级用户”,出于同样的原因,您不应该将您的日常工作作为“root”,您不应该与DBMS中的超级用户一起工作。所以答案很明确:是的,创建第二个用户。您可以将该角色授予默认数据库(也称为postgres)的所有权限,这样您就不需要第二个数据库。

有关如何创建用户以及如何授予权限的更多详细信息,请参阅手册:

重新2)

我不太了解Linux,但通常在安装过程中应该要求输入密码。在安装的某个时刻,使用命令initdb初始化新的数据目录,该命令需要密码才能运行。

如果您不知道密码,则登录postgres linux帐户,然后您可以在不指定密码的情况下运行psql。这使您可以重置数据库密码并创建新用户。

有关用户和身份验证的更多详细信息,请参阅手册: