
























这是一个创建于 429 天前的主题,其中的信息可能已经有所发展或是发生改变。
如题,目前有有需求希望能够给用户开放一个 SQL 数据库,开放 SQL 能力( SaaS 场景需求),不然自己封装 SQL 难受,用户也难受。
小弟对 postgresql 之前只有使用经验,对其 user/database/权限能力了解不多,特来问问
chatgpt 推荐:一个 PG 实例,N 个用户,通过不同的 database 和 user 进行隔离,前面一个连接池保证一个 user 只能连接某个 database
我想问问这个方案:
安全性如何,能保证不同的用户之间无法看到彼此的数据,或者影响彼此的数据
多租户之前因为是共享一个实例,资源争抢的问题能解决么?
这个方案运维上有没有什么难点
开放的 user 会不会对实例本身有其他影响
小弟这块经验确实较少,而 chatgpt 我总感觉他有些方案不是很可信,特来问问,以及有哪家用这个场景在线上跑的吗?
1 datou 2025 年 4 月 12 日用过 supabase 的免费套餐,还行 |
2 laikicka 2025 年 4 月 12 日多个 schema 会比较好吧 |
3 dcoder 2025 年 4 月 12 日@annoygaga 下面这个是一般做法, 从易到难: 像你们领导要求的,直接给个 SQL 数据库给用户... 属于不懂瞎指挥, 想象把开发该做的事情,甩给用户+运维. 可以想象这个项目后面有多痛苦. 让提这个需求的人,自己去擦屁股吧. |
4 xuanbg 2025 年 4 月 12 日只要实现自动化部署,分库、分表、tenant_id 标记这三种方案都基本一样。 |
7 annoygaga 2025 年 4 月 12 日@datou 怎么说? supabase 这么搞的?我登录上去可以新建 database 呀(我指 psql 链接过去 create database ) |
9 annoygaga 2025 年 4 月 12 日@dcoder 是做类似 retool 的类似物,也就是每个用户本身就是创建多表的。现在倒腾了一堆 api ,用户自己也会 sql ,他难受我们也难受,不如搞成 database 方式提供呢,所以需求确实是提供 sql 能力。针对免费用户,混部,运维要求也不算高,但还是希望降低运维成本(谁知道免费用户会怎么用。。。 |
12 annoygaga 2025 年 4 月 12 日@dcoder 说多都是泪,用户不喜欢接受你的 api (要学习就不说了,而且数据方面的需求本身就很繁琐),sql 本身也不难学,用户表示还不如给一个 sql 口子,高阶用户也能用,我都准备写 sql parser 来搞这个需求了,想了想,搞了这么多还不如用 pg 提供的多租户方式,这样 bug 也少,主要问题就如你说的,运维成本是不是太高了,这部分很多就是免费用户,其实可以做严一些限制(但我对 pg 熟悉不高,不知道是不是可以像 docker 一样严格限制) |
13 irrigate2554 2025 年 4 月 12 日@dcoder 我们这就是 supperset 普通直连数据库只给 schema 的权限,页面嵌入到我们系统,客户用下来也没啥问题。 |
14 Yanickkk 2025 年 4 月 12 日没什么难点,也可行,并且可以建一个实例池,超卖啥的都是基操了。唯一要注意的就是小心爆炸半径 |
19 irrigate2554 2025 年 4 月 12 日@annoygaga 只读就行了,用户无法看到其他人数据这个问题由租户自己的报表开发人员来确保,我们只保证你们租户不能看到其他租户的数据就行。 |
20 IDAEngine 2025 年 4 月 12 日直接上 docker 不就好了 |
23 irrigate2554 2025 年 4 月 12 日@annoygaga 这就大可不必了,问问 AI 怎么配置权限,自己试试,除非是 pg bug ( pg 代码出了名的好)否则肯定泄露不了。 |
26 changz 2025 年 4 月 13 日 via Android可行,看下 neon ,就是身边没有多少应用案例,小开发者薅羊毛的用得多 |
27 jjx 2025 年 4 月 13 日取决于你的租户数 一数据库和一 schema 都保证了数据的独立性,这个独立性更多的是编程时不会导致访问到其它租户的数据, 比单一表中用租户 id 区分要安全的多 如果不需要开放给租户 sql 权限, 没有必要做一用户一 schema 限制, 因为通常连接池连接的特点, 用户也是一个参数 postgresql 默认只有 100 个连接, 连接很宝贵 如果需要开放给租户 sql 权限,则必须用用户去限制 schema 访问权限,不过这样也导致连接资源被消耗 具体要根据实际情况决定 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。