Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本PostgreSQL问题-我是否需要其他用户?_Sql_Postgresql - Fatal编程技术网

基本PostgreSQL问题-我是否需要其他用户?

基本PostgreSQL问题-我是否需要其他用户?,sql,postgresql,Sql,Postgresql,默认情况下,我使用apt get安装了postgreSQL,我相信它已经自动为我添加了一个名为“postgres”的用户 我只有一个数据库,我想对postgres进行排序,它也是 为该数据库创建另一个用户帐户或 我应该继续使用postgreSQL安装的那一个吗 “博士后” 为我制作的用户帐号postgres,有没有给一些 默认密码是什么?是不是建议我把自己的 密码 编辑:我误解了这个问题,OP询问的是内部用户,而不是系统用户 原始答案:运行服务器的系统用户 作为标准的安全实践,在linux机器上

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

  • 我只有一个数据库,我想对postgres进行排序,它也是 为该数据库创建另一个用户帐户或 我应该继续使用postgreSQL安装的那一个吗 “博士后”

  • 为我制作的用户帐号postgres,有没有给一些 默认密码是什么?是不是建议我把自己的 密码


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

    原始答案:运行服务器的系统用户 作为标准的安全实践,在linux机器上运行的大多数服务都有自己的独立用户。在postgreSQL服务器被破坏的可能性很小的情况下(可能是您犯了一个错误,或者postgreSQL中存在漏洞,或者诸如此类),攻击者只能访问运行postgreSQL服务器的用户所允许的资源。如果该用户是root用户,则会丢失计算机。如果该用户是您的用户,那么您的损失不会太大。如果该用户是
    postgres
    ,则该用户只能访问最少的内容。。你失去了数据库,仅此而已

    因此:

  • 对于postgreSQL server,您只需要一个用户,而不管该服务器进程承载什么。如果(听起来像是)自动为您创建了一个用户,那么您就可以完成这个步骤了。如果需要手动创建(听起来好像没有),还必须更改权限,以便新用户只能访问其需要的内容

  • 该账户很可能无法直接登录;如果它有密码的话,那就是大量的随机数据。为了使用该帐户,您需要以root用户身份开始,然后自愿将自己“降级”到
    postgres
    。对于服务器,root以postgres的名称启动服务器。我建议不要管它

  • 第二个答案:数据库用户 服务器运行后,服务器将保留自己的用户集,以便访问数据库。您可以在那里使用的最简单的体系结构就是让一个拥有完全权限的基本用户做任何事情。虽然这是可行的,但不建议您在外部托管。一个更可取的解决方案是拥有一组用户,类似于操作系统的设置方式:一群用户执行特定任务,一个管理员用户管理所有用户。也就是说:

  • 你不必这么做,但如果你想在任何地方托管(如果你不只是把它用于个人事务,而且它是全世界都可以访问的),我建议使用有限权限的额外用户

  • 默认没有密码;用alteruser创建一个

    除非设置pg_hba.conf以使用密码,否则密码不会生效。如果 是的,而且你还没有给postgres分配密码,你就不会是了 能够作为postgres连接

  • 回复1)

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

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

    re 2)

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

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

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


    re 1):我认为他说的不是Linux用户,而是Postgres用户。没有使用Postgres,但我希望它的默认内部用户名类似于“root”。postgres听起来像是承载服务器进程的linux用户的名字。是的,我现在有点困惑了。我说的是数据库用户,不是系统用户。postgresql是否通过apt get安装创建了系统用户和数据库用户?好的,误解了
    cat/etc/passwd
    并查看是否也有新的系统用户检查。@zebediah49默认的“admin”用户名为postgres(通常操作系统用户名相同,所以有点混乱)。非常感谢您的回答,我投了赞成票,但只能选择一个。