[Django3.0]createsuperuserとauth_userテーブルの関係

コマンドでcreatesuperuserをすると、auth_userテーブルはどうなるのか

$ python manage.py createsuperuser
Username (leave blank to use ‘vagrant’): admin
Email address: admin@gmail.com
Password:
Password (again):
Superuser created successfully.

mysql> select * from auth_user;
+—-+——————————————————————————–+—————————-+————–+———-+————+———–+—————–+———-+———–+—————————-+
| id | password | last_login | is_superuser | username | first_name | last_name | email | is_staff | is_active | date_joined |
+—-+——————————————————————————–+—————————-+————–+———-+————+———–+—————–+———-+———–+—————————-+
| 1 | pbkdf2**** | 2020-08-23 00:25:31.740845 | 1 | admin | | | admin@gmail.com | 1 | 1 | 2020-08-23 00:20:16.453853 |
+—-+——————————————————————————–+—————————-+————–+———-+————+———–+—————–+———-+———–+—————————-+
1 row in set (0.00 sec)

id:1
password:
last_login: * adminにログインした日時
is_superuser:1
username: *
first_name: null
last_name: null
email: *
is_staff: 1
is_active: 1
data_joined: * createsuperuserした日時

adminツールからユーザ作成した場合

active: Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
-> activeユーザか否か

is_staff: Designates whether the user can log into this admin site.
-> adminサイトにアクセスできるか否か

is_superuser: Designates that this user has all permissions without explicitly assigning them.
-> adminサイトでのパーミッション

mysql> select * from auth_user;
+—-+——————————————————————————–+—————————-+————–+———-+————+———–+——————+———-+———–+—————————-+
| id | password | last_login | is_superuser | username | first_name | last_name | email | is_staff | is_active | date_joined |
+—-+——————————————————————————–+—————————-+————–+———-+————+———–+——————+———-+———–+—————————-+
| 1 | **** | 2020-08-23 00:25:31.740845 | 1 | admin | | | admin@gmail.com | 1 | 1 | 2020-08-23 00:20:16.453853 |
| 2 | **** | NULL | 0 | normal | | | normal@gmail.com | 0 | 1 | 2020-08-23 00:33:51.000000 |
+—-+——————————————————————————–+—————————-+————–+———-+————+———–+——————+———-+———–+—————————-+

is_staffが0のユーザでアクセスしようとすると、ログインエラーになります。

is_staffを1にするとログインできるが、パーミッションがないので、何も閲覧できない。

auth_userの構造は理解した。続いて、permissionを見ていきます。