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

Pel*_*umi 12 postgresql macos terminal

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

在此处输入图片说明

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

在此处输入图片说明

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

Bas*_*que 14

postgres 用户帐号

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

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

您会发现 Postgres 比 MySQL 等其他产品更加面向企业。这意味着锁定以确保安全。另一个例子:Postgres 默认配置为接受网络连接。要启用来自其他计算机的连接,您必须更改配置。初学者不方便,但更安全。就像汽车方向盘上的横杆和车门上的锁舌一样,更高的安全性总是意味着要采取更多的步骤和更多的烦恼。

使用虚拟机

安装postgres用户帐户是使 Postgres 成为相当重量级安装的原因之一。我建议那些学习 Postgres 的人使用 Postgres 的虚拟机。就像是:

要删除 Postgres,只需丢弃 vm。

适用于 macOS 的Postgres.app

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

请注意:在已经进行常规安装的 Mac 上,您可能会与 Postgres.app 发生冲突。我建议您在安装 Postgres.app 之前先小心地从 Mac 中删除传统的Postgres。卸载涉及在不同位置查找和删除各种文件和文件夹。

数据库即服务 (DBaaS)

避免本地安装的另一个选择是增加将 Postgres 作为服务运行的选择。这有时被称为“托管 Postgres”,因为供应商代表您维护 Postgres 的安装。您只需使用Postgres 来创建您的数据库,但您并不能完全控制此类服务中的 Postgres。

一些例子:

我的经验

就个人而言,我经常使用EnterpriseDB.com安装程序在 Mac 上安装 Postgres 。该公司销售 Postgres 的增值版本,但好心地提供了普通 Postgres 的安装程序,作为对社区的服务。

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

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

所有这三个选项对我来说都非常有效。哪个更可取取决于场景。例如,如果我希望同事能够在我自己的 MacBook 不可用的情况下 24x7 访问数据库,那么 DigitalOcean.com 方法就很好。

这个讨论是为了开发工作。对于关键任务部署,我强烈建议使用具有纠错内存和冗余存储(例如RAIDZFS 池)的重型服务器设备。Postgres 非常可靠,但当然取决于可靠的硬件。


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


小智 7

正如 @basil-bourque 所指出的,需要该帐户有几个原因。也就是说,如果 PostgreSQL 在登录屏幕中显示让您感到烦恼(就像它对我一样),只要您在 MacOS 中拥有管理员用户权限,您就可以将其删除。

Apple 支持提供以下命令以在登录屏幕中隐藏用户:

$ sudo dscl . create /Users/hiddenuser IsHidden 1
Run Code Online (Sandbox Code Playgroud)

但是,由于安装时登录窗口中未列出 PostgreSQL 用户,因此该命令不会产生任何结果 - 至少在我的操作系统 Catalina 中是这样。您应该按照josemarluedke的建议使用以下两个命令:

## 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
Run Code Online (Sandbox Code Playgroud)

为我工作!