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
程序包以编程方式访问。
在典型的数据库中,管理员可以分配用户并创建只能由一组特定用户或组访问的表。还可以创建某些用户可以在数据库中进行的查询,例如 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
程序包以编程方式访问。