Django 是否用模型实现数据库中的用户权限?

Does Django implement user permissions in databases with models?

在典型的数据库中,管理员可以分配用户并创建只能由一组特定用户或组访问的表。还可以创建某些用户可以在数据库中进行的查询,例如 MySQL.

Django 是否提供任何此类功能,还是只有 Django 管理界面可以执行此操作?

我知道管理员可以创建用户并为他们提供使用应用程序模型的权限。

是的,你可以做到。

Django 在模块 django.contrib.auth.models

中定义了这些模型

您可以从那里导入所有模型,如组、权限等。

from django.contrib.auth.models import *

如果你想列出所有的 django auth 模型,你也可以在 mysql/or 其他数据库中通过前缀 auth_* 查看它们,例如,在 mysql

show tables like "%auth%";

在这些模型上你可以使用 django ORM。

Django 本身不提供对数据库级用户/组/权限的访问,因为对于所有连接都将与同一数据库用户(即settings.DATABASES 中定义的一个)。请注意,这并不是真正的 Web 应用程序标准的缺点。

Django提供的是应用级的用户/组/权限(cf https://docs.djangoproject.com/en/1.8/topics/auth/)。您可以通过管理员访问此应用程序级层,当然也可以通过 django.contrib.auth 程序包以编程方式访问。