有人可以解释一下Postgresql角色,Postgresql用户和Linux用户之间的关系吗?

Sam*_*and 5 postgresql ubuntu roles postgresql-9.3

我正在尝试在Ubuntu 14服务器上设置Postgres 9.3,这时我感到很沮丧。我以前使用过MySQL,因此对一般的数据库概念以及客户端/服务器模型等感到满意。

我从两个用户开始-“ root”和“ sam”(我)。作为“ sam”,我使用apt-get安装postgresql。这还会创建第三个用户,称为“ postgres”。

精细。

我被告知要使用postgres,您必须以postgres用户身份登录,所以我切换到该帐户。显然,这带有一个postgres管理员角色(我认为角色本身的概念还不错),而且显然所有角色都有一个同名的关联数据库(?)。因此,现在我有一个名为postgres的Linux帐户,一个名为postgres的角色和一个名为postgres的数据库?这一切似乎都是不必要的,但是我假设它出于我不知道的原因是有用的(不是讽刺的意思-通常情况一开始看起来过于复杂)。

因此,要创建数据库,我是否以postgres身份登录服务器,通过键入“ psql”(不要求输入密码-为什么postgres帐户没有密码?)来启动postgres,然后从那里继续?还是我应该创建一个新角色?该角色需要自己的Linux用户吗?角色应该与我要创建的数据库同名吗?

我很高兴这有点混乱,但是我的困惑使我什至不确定我是否了解这里的基本原理。我想念MySQL。

我主要使用的是DigitalOcean教程 -通常非常好-但实际上并不清楚。我还阅读了没有帮助的postgres文档(特别是安装和用户/角色部分),而Google的搜索结果甚至没有帮助。

这是我回到MySQL安全毯之前的最后希望。有什么建议可以进行此点击?

wil*_*ser 7

  • 操作系统用户名和 Postgres DB 用户名不相关;他们生活在不同的宇宙中。
  • 一个例外:如果您通过 unix 域套接字从同一台计算机进行连接,并且没有明确指定用户名,则您的操作系统名称也被假定为您的数据库用户名。(在大多数情况下这是不正确的)
  • 第二个例外:“postgres”用户名既用作操作系统用户名(文件的所有者、正在运行的进程的 uid)用作 DBMS 超级用户。
  • 注意:“root”对于数据库用户来说是一个不好的名字。