如何为不同的Mac用户分离PostgreSQL数据?

发布于 2024-11-07 18:28:24 字数 324 浏览 0 评论 0原文

在 MacOS 上安装 PostgreSQL 时,您需要创建一个数据文件夹,其中存储有关用户、数据库和权限的详细信息,但此数据是全局可用的。 有没有办法根据Mac用户来区分这个?

这样:

  • 当使用 UserA 登录时,PostgreSQL 将仅实例化/查看 DB_A1 和 DB_A2 以及仅为 UserA 的 PostgreSQL 实例定义的 PostgreSQL 用户。
  • 当使用 UserB 登录时,PostgreSQL 将仅实例化/查看 DB_B1 和 DB_B2 以及仅为 UserB 的 PostgreSQL 实例定义的 PostgreSQL 用户。

When installing PostgreSQL on MacOS you need to create a data folder where it will store details about users, dbs and privileges, but this data is globally available.
Is there a way to separate this based on Mac users?

This way:

  • When logging in with UserA, PostgreSQL will only instantiate/see DB_A1 and DB_A2 and PostgreSQL users defined only for UserA's PostgreSQL instance.
  • When logging in with UserB, PostgreSQL will only instantiate/see DB_B1 and DB_B2 and PostgreSQL users defined only for UserB's PostgreSQL instance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

℉絮湮 2024-11-14 18:28:24

根据我对 PostgreSQL 的一些生疏的了解,你的意图将导致在他/她自己的保留端口上为每个用户启动一个 postmaster 进程。虽然这是可能的,但它闻起来就像来自管理地狱的烟雾(不计算为单个用户保留的胖 RDBMS 进程的开销,该进程大部分时间都在等待)。积极表达我建议考虑以下选项之一:

  • pg_hba.conf 添加一行,例如 local all sameuser all md5 以允许所有本地用户仅访问他们的个人数据库(以用户的名字命名)。根据您使用的实际 PostgreSQL 版本,对系统数据的访问可能会受到进一步限制(最好查阅文档< /a> 在这种情况下)。

  • 根据数据量,如果并发访问不是关键的必备条件(这里似乎就是这种情况),则切换到 sqlite3;它是高性能的,数据位于单个文件中,访问由库而不是成熟的 RDBMS 后台进程舰队提供,并且它可以与每个 Mac OS X 一起使用。

according to my somewhat rusty knowledge about PostgreSQL your intention would lead to start a postmaster process for every user on his/her own reserved port. Although this is possible, it smells like smoke from administration hell (not counting the overhead of a fat RDBMS process reserved for a single user spending most of the time waiting). Positively expressed I propose considering one of the following options:

  • Add a line to pg_hba.conf like local all sameuser all md5 to allow all local users to only access their personal databaase (named like the user). Access to system data may be further restricted depending on the actual PostgreSQL version you're using (it's best to consult the documentation in this case).

  • Depending on the amount of data if concurrent access was not a critical must-have (which seems to be the case here) switch to sqlite3; it's performant, data sits in a single file, access is provided by a library instead of a full fledged RDBMS background process armada, and it comes ready to use with every Mac OS X.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文