【问题标题】:How to manage user-specific database connections in a Pyramid Web Application?如何在 Pyramid Web 应用程序中管理用户特定的数据库连接?
【发布时间】:2012-07-03 16:34:27
【问题描述】:

我们正在使用 Python Pyramid 与 SQLAlchemy 和 MySQL 来构建 Web 应用程序。我们希望拥有特定于用户的数据库连接,因此每个 Web 应用程序用户都有自己的数据库凭据。这主要是出于安全原因,因此每个用户只有自己的数据库内容的权限。我们还想保持连接池的性能优势。有没有一种方法可以在登录时根据用户凭据设置新引擎,并将该引擎重用于同一用户发出的请求?

【问题讨论】:

  • 看看备忘录设计模式
  • 0 否决票 您是否有充分的理由不想使用单个“代理”数据库用户而只管理应用程序逻辑中的所有授权/许可内容?这是更常见的操作方式。但可能我遗漏了一些细节,不想假设。
  • 我们有不同级别的用户访问权限,要求用户不应访问其他架构。出于安全原因,我们的 DBA 希望将其锁定在数据库级别。
  • 听起来不错,直到有人要求访问其他用户的东西。比如说,一个管理员。

标签: python sqlalchemy pyramid


【解决方案1】:

据我所知,最好的方法是使用具有多个模式的同一个数据库。不幸的是,我认为这不适用于 MySQL。这个想法是您将池引擎连接到同一个数据库,然后当您知道哪个用户与请求相关联时,您可以切换该连接的架构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2017-07-16
    相关资源
    最近更新 更多