django数据库与不同的用户重新连接

时间:2013-02-21 15:54:48

标签: django database-connection user-management

这样做的背景是,我希望限制用户管理,而不需要前端应用程序具有对数据库的完全访问权限(用户表的创建由后端进程完成)。应该只允许前端访问当前登录用户有权读取的表。原因是,前端的安全问题不应该显示对整个数据库的访问,而只是在最坏的情况下才会显示当前用户的内容,而我可以随机读取数据库,而不会打扰后端进程。

因此,我希望Django模型与给定用户连接,而不是在settings.py中具有对django数据库的全局访问权限。

在不覆盖核心数据库连接的情况下,这是否可行?

1 个答案:

答案 0 :(得分:0)

从Django 1.2或更高版本,您可以在settings.py中定义多个数据库。虽然我从未使用它来指向同一个数据库,但我看不出任何理由您无法定义到同一数据库但具有不同用户凭据的多个连接。

然后,您可以根据登录用户(或未登录用户,视具体情况而定)决定使用哪个连接

这方面的文档是here

我发现他们选择使用名为'auth'的应用程序作为一个令人困惑的例子,但它只是一个像其他任何应用程序的应用程序,所以不要混淆认为它与auth有关,即使在你的情况会有所不同。