有没有办法或技术可以实现基于用户的数据库资源分配?

发布于 2024-12-07 19:11:09 字数 854 浏览 1 评论 0原文

通常,当平台想要向用户(开发者)提供数据库资源用于应用程序开发时,他们会使用限制数据库访问API来限制应用程序的行为,以对占用的资源施加一些约束,例如社交API。

我们是否可以在数据库层或应用程序层实现和使用相同的方法。如果那样,我们只需要为特定用户分配数据库配额,并让数据库处理资源使用情况。此外,最好有一些来自数据库服务器的编程 API 来支持这一点。

我发现了一些类似的问题,如下:

由于我专注于开源解决方案,那么 PostgreSQL 或 NoSQL 怎么样?作为开源数据库,我认为PostgreSQL比Oracle更有优势。

Typically, when platforms want to provide database resource to user (developer) for applications development, they use limit database access APIs to restrict behaviors of the application, in order to enforce some constraints on resources occupied, an example is social API.

Is there a same way that we can implement and use in database layer, nor application layer. If then, we just need to assign database quota for specific user and let database handle the resource usage. Furthermore, it's better to have some programming APIs from database server to support this.

I found some similar questions, as follow:

Since i am focus on open source solutions, how about PostgreSQL or NoSQL? As open source database, I think PostgreSQL compares better favourably with Oracle.

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

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

发布评论

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

评论(1

━╋う一瞬間旳綻放 2024-12-14 19:11:09

使用 MySQL(目前根据开源 GPL 许可证发布),您可以在数据库内施加以下资源限制

帐户每小时可以发出的查询数量

帐户每小时可以发布的更新数量

帐户每小时可以连接到服务器的次数

一个帐户同时连接到服务器的数量

对于 postgres,< a href="http://wiki.postgresql.org/wiki/Priorities#Prioritizing_users.2C_queries.2C_or_databases" rel="nofollow noreferrer">他们的 wiki 状态:

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

但对我来说,真正的问题是——无论使用哪个数据库——当用户超出其限制时,期望是什么?如果数据库强制执行限制,那么超出这些限制的查询是否应该简单地返回错误并导致应用程序失败?我怀疑这可能会对应用程序产生意想不到的负面影响。很难说当数据库突然开始返回错误时会发生什么。

With MySQL (which is currently released under the open source GPL license), you can impose the following resource limits inside the database:

The number of queries that an account can issue per hour

The number of updates that an account can issue per hour

The number of times an account can connect to the server per hour

The number of simultaneous connections to the server by an account

For postgres, their wiki states:

PostgreSQL has no facilities to limit what resources a particular user, query, or database consumes, or correspondingly to set priorities such that one user/query/database gets more resources than others. It's necessary to use operating system facilities to achieve what limited prioritization is possible.

But the question to me really is -- no matter which database is used -- what is the expectation when a user exceeds their limits? If the database enforces limits, should queries beyond those limits simply return an error and cause the application to fail? I'd suspect that this might have unexpected negative impacts on the applications. It's hard to say what will happen when suddenly the database starts returning errors.

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