你能减慢对 postgres 数据库中特定用户的查询吗

Use*_*281 6 postgresql performance postgresql-performance

我假设可以减慢 postgres 数据库中特定用户的查询访问速度。你会怎么做?有没有办法让用户看到这样的设置已经被放置在他们身上,以及用户可以做些什么来克服它,如果有的话。

基本上我有兴趣在每个用户的基础上限制资源以防止不良行为者滥用系统。

Joh*_*ner 5

据我所知,普通 Postgres 引擎本身并不提供这些功能。根据优先级PostgreSQL wiki 页面

PostgreSQL 没有功能来限制特定用户、查询或数据库消耗的资源,或者相应地设置优先级以使一个用户/查询/数据库比其他用户/查询/数据库获得更多的资源。有必要使用操作系统设施来实现有限的优先级。

正如最后一句所提到的,有一些方法可以通过使用连接设置(例如内存)或借助扩展的操作系统级技巧(例如 CPU 优先级的优先级)来work_mem模拟maintenance_work_mem这种行为

如果您有预算,有一些定制的 Postgres 引擎声称也提供此功能,其中一个是由EnterpriseDB提供的。我没有使用过它,也不知道它的性能如何,但如果您正在寻找更多替代品,它是另一个选择。