我不知道Postgresql是如何在我的mac上创建用户的

我不知道Postgresql是如何在我的mac上创建用户的,postgresql,macos,terminal,Postgresql,Macos,Terminal,两天前,我开始学习postgresql。我在网上学习的大多数教程要么是旧的,要么代码不能在我的mac上使用。我学习了很多教程,做了很多完全不同的事情。 当我今天打开系统的时候。我注意到Postgresql在我的mac上创建了一个用户。我不知道这是什么,或者我使用了错误的CLI代码 当我尝试查看用户时,我看到了这一点 我应该删除这个用户还是它有一个功能?postgres用户帐户 为Postgres专门创建一个用户帐户(通常称为Postgres),是Postgres安装的正常部分。您的安装程序应

两天前,我开始学习postgresql。我在网上学习的大多数教程要么是旧的,要么代码不能在我的mac上使用。我学习了很多教程,做了很多完全不同的事情。 当我今天打开系统的时候。我注意到Postgresql在我的mac上创建了一个用户。我不知道这是什么,或者我使用了错误的CLI代码

当我尝试查看用户时,我看到了这一点

我应该删除这个用户还是它有一个功能?

postgres
用户帐户 为Postgres专门创建一个用户帐户(通常称为
Postgres
),是Postgres安装的正常部分。您的安装程序应用可能会提示您输入密码以分配给此新用户帐户

原因之一是安全性:数据库的数据文件和安全配置文件存储在
postgres
用户拥有的文件夹中。因此,如果您的主用户帐户被劫持,入侵者将无法访问数据库(通常是存储中最有价值的东西)。入侵者必须跳越更多的铁环才能危及Postgres。另外,独立的所有权可以防止其他应用程序无意中践踏Postgres文件

你会发现Postgres比MySQL等其他产品更面向企业。这意味着为了安全而锁定。另一个示例:Postgres默认配置为不接受网络连接。要启用与其他计算机的连接,必须更改配置。对初学者来说不方便,但更安全。就像汽车方向盘上的一根杠和车门上的门闩一样,更安全总是意味着需要采取更多的步骤和更多的烦恼

使用虚拟机 安装
postgres
用户帐户是使postgres成为一个相当重要的安装程序的原因之一。我建议那些学习博士后的人使用虚拟机进行博士后学习。比如:

  • 或者在你自己的电脑上
  • 云服务器,例如on
要删除Postgres,只需丢弃vm即可

macOS的Postgres.app Mac用户的另一个选择是,由第一批Postgres-as-a-Service实现(on)的构建者创建。我没有使用Postgres.app,但我知道它包装了Postgres,因此它没有安装
Postgres
用户帐户。此外,Postgres在启动和退出应用程序时启动和停止,而不是一直在后台运行

请注意:您可能与Mac上的Postgres.app发生冲突,因为您已经进行了常规安装。我建议您在安装Postgres.app之前先仔细检查。卸载包括查找和删除不同位置的各种文件和文件夹

数据库即服务(DBaaS) 另一种避免本地安装的方法是增加Postgres作为服务的选择。这有时被称为“托管Postgres”,因为供应商代表您维护Postgres的安装。您只需使用Postgres来创建数据库,但在这样的服务中并不能完全控制Postgres

一些例子:

我的经验 就我个人而言,我经常使用。那家公司出售增值版本的Postgres,但作为对社区的一项服务,它为普通Postgres提供了一个安装程序

我还使用了EnterpriseDB.com上的同一个安装程序将macOS作为来宾操作系统安装到运行macOS的Parallels虚拟机上,该虚拟机位于运行macOS作为主机操作系统的MacBook Pro虚拟机上。您可以轻松地将VM配置为在网络上共享主机Mac的IP地址,也可以为VM提供自己的网络地址,这对于演示/开发/测试工作可能很方便

第三,我在DigitalOcean.com的FreeBSD上安装了Postgres

这三种选择对我来说都很有效。哪个更好取决于场景。例如,如果我希望同事能够在不使用我自己的MacBook的情况下全天候访问数据库,那么DigitalOcean.com方法是很好的

这次讨论是为了发展工作。对于任务关键型部署,我强烈建议使用重型服务器设备和冗余存储,如或。Postgres非常可靠,但当然取决于可靠的硬件



你的标签上写着Postgres 9.1。那个版本现在已经很旧了。我建议使用最新版本。顺便说一下,postgres的版本编号系统已经改变了。第一个数字现在大概是每年发布的数字,可能需要您转储和重新加载数据以进行升级,第二个数字是兼容的更新。

正如@basil bourque所指出的,需要该帐户有几个原因。 这就是说,如果PostgreSQL出现在登录屏幕上让您感到恼火——就像我一样——您可以删除它,只要您在MacOS中拥有管理员用户权限

以下命令用于从登录屏幕中隐藏用户:

$ sudo dscl . create /Users/hiddenuser IsHidden 1
但是,由于PostgreSQL用户在安装时未在登录窗口中列出,因此该命令不会产生任何结果-至少在Catalina中是这样,Catalina是我的操作系统。 您应该使用以下两个命令,如下所示:


为我工作

你是如何安装Postgres的?我在安装时没有遇到这种情况。我是通过自制软件安装的。也安装了自制软件。只是想知道我是否输入了错误的CLI代码很难说。您输入了什么CLI代码
brew install postgres
不应该造成这种情况,我不认为。在姐妹网站上问这个问题可能会更好,@Basil谢谢,可以这样做。非常感谢您的解释!!。但是我已经删除了这个账户!我能做什么?@Pelumi这是macOS吗?您可以使用相同的名称重新创建帐户。希望这能让新用户访问现有的Pos
## add postgres to the list of hidden users on login screen
$ sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add 'postgres'
## instruct not to show any hidden accounts at login
$ sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWOTHERUSERS_MANAGED -bool FALSE