我有一个使用if (ke)
和Python 3.6
的项目,其中使用了内置Django 1.11
模型。
用户对象都在默认数据库(User
)中,但是该项目使用了第二个身份验证后端,因为某些用户需要针对旧版postgres
数据库进行身份验证。
Oracle
到目前为止,此方法还可以,但是现在我有3个用户组:
# settings.py
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend', # new postgres DB
'project_config.auth_backends.OtherBackend', # legacy Oracle DB
]
中进行身份验证,因为它们不在旧版数据库中(因为它们是新用户)。usr.has_usable_password() == False
,是因为他们尚未在新的ModelBackend
数据库中设置密码。出于审计目的,我想列出所有用户,并查看每个用户都有哪些后端(暂时忽略postgres
标志)以简化审计任务。
我的想法是使用与此类似的循环:
is_active
我没有用于旧数据库的每个用户的密码,所以想法甚至可能吗?
我还没有找到方法,但是我愿意接受建议。
答案 0 :(得分:0)
最后,我不得不接受@ivissani的建议,并在旧版Oracle
DB中查询users表:
select * from all_users;
有了这些信息,我可以将其与postgres
数据库中的用户进行比较,并确定哪些用户只出现在一个或两个中。