gpt4 book ai didi

django - 基于登录 Django 1.8 用户的单独数据库设置

转载 作者:行者123 更新时间:2023-11-29 12:26:00 26 4
gpt4 key购买 nike

我想要一个 Postgresql 9.4 级别的角色(因此我不会使用 Django 权限系统)成为数据所有者和其他读取访问权限。

换句话说:PG Role data_owner (content manager) --> Django group Publishers (RW)PG Role data_user (content reader) --> Django group Subscribers (R)

数据所有者角色(通过发布者组)将负责为应用程序提供数据,而其他用户只是具有只读访问权限的检索器。

有些表(如事件流)需要为所有用户读写。

那么方法是:

  • 内容表:角色data_owner rw,其他r
  • 功能表:所有rw

可选:

  • 配置表:role system_owner rw, ohters r

其中 r 表示选择权限,w 表示插入、更新和删除权限。

如何才能更好地实现这一点?

最佳答案

可能最简单的方法是在 settings.py 中定义两个数据库:

DATABASES = {
'default': {
'NAME': 'my_db',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'data_owner',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'my_db',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'data_user',
'PASSWORD': 'priv4te'
}
}

然后,在 View 中,使用 using() 函数访问模型,如下所示:

# This will run on the 'default' database.
objects.all()

# So will this.
objects.using('default').all()

# This will run on the 'users' database.
objects.using('users').all()

另外,您可以选择一个数据库进行保存,如下所示:

my_object.save(using='_users')

来源:https://docs.djangoproject.com/en/1.8/topics/db/multi-db/

还有什么建议吗?

关于django - 基于登录 Django 1.8 用户的单独数据库设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36829427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com