Manual:user table - MediaWiki
Jump to content
From mediawiki.org
(Redirected from
User table
Translate this page
Languages:
polski
português
suomi
čeština
русский
ไทย
中文
Manual:Contents
MediaWiki database layout
user table
The
user
table is where MediaWiki stores information about users.
If using Postgres, this table is named
mwuser
prior to 1.37.
Fields
Some of this information was adapted from
schema.doc
in the MediaWiki
docs/
directory.
user_id
user_id
is the primary key, used to uniquely identify a user.
user_name
user_name
Usernames must be unique, and must not be in the form of an IP address.
Shouldn't
allow slashes or case conflicts.
See also
Manual:$wgInvalidUsernameCharacters
Spaces are allowed, and underscores are converted to spaces (the opposite than with page names).
user_real_name
MediaWiki version:
1.3
user_real_name
stores the user's real name (optional) as provided by the user in their "Preferences" section.
This field provides a publicly viewable real name to ?action=credits pages.
Turn this feature off with
$wgHiddenPrefs[] = 'realname';
and
$wgActions['credits'] = false;
user_password
user_password
is one of three formats, depending on the setting of
$wgPasswordDefault
Since MediaWiki 1.24, $wgPasswordDefault defaults to pbkdf2. In this case you will get a concatenation of the following:
The string ":pbkdf2:".
The hashing algorithm used inside the pbkdf2 layer, by default "sha512".
The colon character (
).
The cost for this algorithm, by default "30000".
The colon character (
).
The length of the derived key; "64" by default.
The colon character (
).
Base64 encoded
salt
of the hashing algorithm, e.g. "kkdejKlBYFV7+LP2m2thYA=="
The colon character (
).
And finally the base64 encoded result of the hashing algorithm (that had a (default) length of 128 bytes before base64 encoding). The hash of the plain text user password.
Since MediaWiki 1.24, if the maintenance script
wrapOldPasswords.php
has been used, passwords may also start with ":pbkdf2-legacyA:" or ":pbkdf2-legacyB:" like ":pbkdf2-legacyB:!sha256:10000:128!...".
For passwords written by MediaWiki 1.23 and older, if $wgPasswordSalt was true (default) it is a concatenation of the following:
The string ":B:"
A pseudo-random hexadecimal 31-bit
salt
between 0x0 and 0x7fff ffff (inclusive)
The colon character (
The MD5 hash of a concatenation of the
salt
, a dash ("-"), and the MD5 hash of the password.
For passwords written by MediaWiki 1.23 and older, if $wgPasswordSalt was false, it is a concatenation of the following:
The string ":A:"
The MD5 hash of the password.
In
wiki farms
which use
CentralAuth
, this field can contain an outdated and unused value (
T104500
).
The canonical password value is stored in the
gu_password
field of the
globaluser
table.
user_newpassword
user_newpassword
is generated for the mail-a-new-password feature.
user_newpass_time
user_newpass_time
is set to the current
timestamp
(wfTimestampNow()) when a new password is set.
Like the other timestamps, it is in MediaWiki's timestamp format (yyyymmddhhmmss, e.g. 20130824025644).
user_email
Email should be restricted, not public info. Same with passwords. Enter details at your own risk. ;)
This field is not nullable, so users who have never supplied an email address have an empty string set.
Tracked in
Phabricator
Task T104500
Open
In
wiki farms
which use
CentralAuth
, this field can contain an outdated and unused value (
T104500
).
The canonical email is stored in the
gu_email
field of the
globaluser
table.
user_touched
user_touched
the last time a user logged in (
not
just mere visiting using an existing session), modified user settings, or got promoted into new user groups.
user_token
MediaWiki version:
1.4
user_token
is a pseudorandomly generated value.
When a user checks
Keep me logged in
the value is stored in a persistent browser cookie
${wgCookiePrefix}Token
that authenticates the user while being resistant to spoofing.
user_email_authenticated
user_email_authenticated
is the timestamp of when the user email was authenticated.
Defaults to NULL.
user_email_token
MediaWiki version:
1.5
user_email_token
is a token used for confirming an email address.
See User::newFromConfirmationCode in User.php
user_email_token_expires
user_email_token_expires
is the expiration timestamp of the email token.
user_registration
MediaWiki version:
1.6
user_registration
is the
timestamp
(date and time) of when the user registered.
For old users, they may have a value of NULL for this field.
The
fixUserRegistration.php
script can be used to back-populate this field.
user_editcount
MediaWiki version:
1.9
user_editcount
is the rough number of edits and edit-like actions the user has performed.
The following actions are counted as edits:
Creating or modifying a MediaWiki page even if the revision or page is later deleted (i.e. making a non-null edit)
Creating or modifying a post on a
Structured Discussions
(former "Flow") board
Moving a page to a new title (
since version 1.30
The redirect created from a page move (
since version 1.38
until
T296035
was
fixed in version 1.44
This field is
not
an exactly accurate copy of
COUNT(*) FROM revision WHERE rev_user = user_id
However, it should be roughly accurate if the update scripts are consistently run and it's the only place edit count data is available to the software, so it's still used for serious purposes like deciding whether accounts have been
autopromoted
A number of things could cause this value to be incorrect.
For example, it may be out of date or, for old accounts, NULL if the update script (
initEditCount.php
) hasn't been run.
Also, some deletions may not affect it consistently.
user_password_expires
MediaWiki version:
1.23
Date when user's password expires; null for no expiration date.
user_is_temp
MediaWiki version:
1.41
Gerrit change 918513
A boolean value representing whether the user is a temporary user.
Zero if any type of user other than a temporary user.
This exists to allow temporary users to be identified from the database only, by external applications.
See
Help:Temporary accounts
for more details.
Removed fields
user_emailauthenticationtimestamp
MediaWiki version:
1.3
Removed in v1.4.
user_options
MediaWiki version:
1.18
(deprecated in 1.16)
See
Manual:User properties table
On older versions of mediawiki, it is a newline-separated list of name=value pairs of the information of
Special:Preferences
Old user accounts who haven't logged in since the field stopped being used may still have this field set.
Schema summary
MediaWiki version:
1.41
DESCRIBE
user
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| user_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_name | varbinary(255) | NO | UNI | | |
| user_real_name | varbinary(255) | NO | | | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | binary(14) | YES | | NULL | |
| user_email | tinyblob | NO | MUL | NULL | |
| user_touched | binary(14) | NO | | NULL | |
| user_token | binary(32) | NO | | | |
| user_email_authenticated | binary(14) | YES | | NULL | |
| user_email_token | binary(32) | YES | MUL | NULL | |
| user_email_token_expires | binary(14) | YES | | NULL | |
| user_registration | binary(14) | YES | | NULL | |
| user_editcount | int(10) unsigned | YES | | NULL | |
| user_password_expires | varbinary(14) | YES | | NULL | |
| user_is_temp | tinyint(1) | NO | | 0 | |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
MediaWiki versions:
1.39 – 1.40
DESCRIBE
user
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| user_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_name | varbinary(255) | NO | UNI | | |
| user_real_name | varbinary(255) | NO | | | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | binary(14) | YES | | NULL | |
| user_email | tinyblob | NO | MUL | NULL | |
| user_touched | binary(14) | NO | | NULL | |
| user_token | binary(32) | NO | | | |
| user_email_authenticated | binary(14) | YES | | NULL | |
| user_email_token | binary(32) | YES | MUL | NULL | |
| user_email_token_expires | binary(14) | YES | | NULL | |
| user_registration | binary(14) | YES | | NULL | |
| user_editcount | int(10) unsigned | YES | | NULL | |
| user_password_expires | varbinary(14) | YES | | NULL | |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
MediaWiki versions:
1.36 – 1.38
DESCRIBE
user
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| user_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_name | varbinary(255) | NO | UNI | | |
| user_real_name | varbinary(255) | NO | | | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | binary(14) | YES | | NULL | |
| user_email | tinyblob | NO | MUL | NULL | |
| user_touched | binary(14) | NO | | NULL | |
| user_token | binary(32) | NO | | | |
| user_email_authenticated | binary(14) | YES | | NULL | |
| user_email_token | binary(32) | YES | MUL | NULL | |
| user_email_token_expires | binary(14) | YES | | NULL | |
| user_registration | binary(14) | YES | | NULL | |
| user_editcount | int(11) | YES | | NULL | |
| user_password_expires | varbinary(14) | YES | | NULL | |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
MediaWiki versions:
1.23 – 1.35
DESCRIBE
user
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
| user_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_name | varbinary(255) | NO | UNI | | |
| user_real_name | varbinary(255) | NO | | | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | binary(14) | YES | | NULL | |
| user_email | tinyblob | NO | MUL | NULL | |
| user_touched | binary(14) | NO | | | |
| user_token | binary(32) | NO | | | |
| user_email_authenticated | binary(14) | YES | | NULL | |
| user_email_token | binary(32) | YES | MUL | NULL | |
| user_email_token_expires | binary(14) | YES | | NULL | |
| user_registration | binary(14) | YES | | NULL | |
| user_editcount | int(11) | YES | | NULL | |
| user_password_expires | varbinary(14) | YES | | NULL | |
+--------------------------+------------------+------+-----+----------------------------------+----------------+
MediaWiki versions:
1.19 – 1.22
DESCRIBE
user
+--------------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+----------------+
| user_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | binary(14) | YES | | NULL | |
| user_email | tinytext | NO | MUL | NULL | |
| user_touched | binary(14) | NO | | NULL | |
| user_token | binary(32) | NO | | NULL | |
| user_email_authenticated | binary(14) | YES | | NULL | |
| user_email_token | binary(32) | YES | MUL | NULL | |
| user_email_token_expires | binary(14) | YES | | NULL | |
| user_registration | binary(14) | YES | | NULL | |
| user_editcount | int(11) | YES | | NULL | |
+--------------------------+---------------------+------+-----+---------+----------------+
MediaWiki version:
1.18
DESCRIBE
user
+--------------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+----------------+
| user_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | binary(14) | YES | | NULL | |
| user_email | tinytext | NO | MUL | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | binary(14) | NO | | NULL | |
| user_token | binary(32) | NO | | NULL | |
| user_email_authenticated | binary(14) | YES | | NULL | |
| user_email_token | binary(32) | YES | MUL | NULL | |
| user_email_token_expires | binary(14) | YES | | NULL | |
| user_registration | binary(14) | YES | | NULL | |
| user_editcount | int(11) | YES | | NULL | |
+--------------------------+---------------------+------+-----+---------+----------------+
MediaWiki versions:
1.10 – 1.17
DESCRIBE
user
+--------------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+----------------+
| user_id | int(10) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | binary(14) | YES | | NULL | |
| user_email | tinytext | NO | | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | binary(14) | NO | | NULL | |
| user_token | binary(32) | NO | | NULL | |
| user_email_authenticated | binary(14) | YES | | NULL | |
| user_email_token | binary(32) | YES | MUL | NULL | |
| user_email_token_expires | binary(14) | YES | | NULL | |
| user_registration | binary(14) | YES | | NULL | |
| user_editcount | int(11) | YES | | NULL | |
+--------------------------+---------------------+------+-----+---------+----------------+
MediaWiki version:
1.9
DESCRIBE
user
+--------------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+----------------+
| user_id | int(5) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_newpass_time | char(14) binary | YES | | NULL | |
| user_email | tinytext | NO | | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | char(14) binary | NO | | NULL | |
| user_token | char(32) binary | NO | | NULL | |
| user_email_authenticated | char(14) binary | YES | | NULL | |
| user_email_token | char(32) binary | YES | MUL | NULL | |
| user_email_token_expires | char(14) binary | YES | | NULL | |
| user_registration | char(14) binary | YES | | NULL | |
| user_editcount | int(11) | YES | | NULL | |
+--------------------------+---------------------+------+-----+---------+----------------+
MediaWiki versions:
1.6 – 1.8
DESCRIBE
user
+--------------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+----------------+
| user_id | int(5) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_email | tinytext | NO | | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | char(14) binary | NO | | NULL | |
| user_token | char(32) binary | NO | | NULL | |
| user_email_authenticated | char(14) binary | YES | | NULL | |
| user_email_token | char(32) binary | YES | MUL | NULL | |
| user_email_token_expires | char(14) binary | YES | | NULL | |
| user_registration | char(14) binary | YES | | NULL | |
+--------------------------+---------------------+------+-----+---------+----------------+
MediaWiki version:
1.5
DESCRIBE
user
+--------------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+----------------+
| user_id | int(5) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_email | tinytext | NO | | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | char(14) binary | NO | | NULL | |
| user_token | char(32) binary | NO | | NULL | |
| user_email_authenticated | char(14) binary | YES | | NULL | |
| user_email_token | char(32) binary | YES | MUL | NULL | |
| user_email_token_expires | char(14) binary | YES | | NULL | |
+--------------------------+---------------------+------+-----+---------+----------------+
MediaWiki version:
1.4
DESCRIBE
user
+------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------+------+-----+---------+----------------+
| user_id | int(5) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_email | tinytext | NO | | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | char(14) binary | NO | | NULL | |
+------------------+---------------------+------+-----+---------+----------------+
MediaWiki version:
1.3
DESCRIBE
user
+------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------+------+-----+---------+----------------+
| user_id | int(5) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_real_name | varchar(255) binary | NO | | NULL | |
| user_rights | tinyblob | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_email | tinytext | NO | | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | char(14) binary | NO | | NULL | |
+------------------+---------------------+------+-----+---------+----------------+
MediaWiki versions:
1.1 – 1.2
DESCRIBE
user
+------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------+------+-----+---------+----------------+
| user_id | int(5) unsigned | NO | PRI | NULL | AUTO_INCREMENT |
| user_name | varchar(255) binary | NO | MUL | NULL | |
| user_rights | tinyblob | NO | | NULL | |
| user_password | tinyblob | NO | | NULL | |
| user_newpassword | tinyblob | NO | | NULL | |
| user_email | tinytext | NO | | NULL | |
| user_options | blob | NO | | NULL | |
| user_touched | char(14) binary | NO | | NULL | |
+------------------+---------------------+------+-----+---------+----------------+
Indexes
MediaWiki version:
1.18
SHOW
INDEX
IN
user
+-------+------------+------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| user | 0 | PRIMARY | 1 | user_id | A | 0 | NULL | NULL | | BTREE | | |
| user | 0 | user_name | 1 | user_name | A | 0 | NULL | NULL | | BTREE | | |
| user | 1 | user_email_token | 1 | user_email_token | A | 0 | NULL | NULL | YES | BTREE | | |
| user | 1 | user_email | 1 | user_email | A | 0 | 50 | NULL | | BTREE | | |
+-------+------------+------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
See also
Manual:User former groups table
Manual:User groups table
Manual:User newtalk table
Manual:User properties table
Databases
Engines
Current
MariaDB
MySQL
PostgreSQL
SQLite
Former
Oracle
SQL Server
Technical documentation
Schema
tables
API property associations
Field prefixes
Primary key storage in other fields
Wikimedia extension tables
Inconsistencies
Configuration
Settings
Sharing
Development
Access
Optimisation
Policy
Updater
Extension schema updates
Schema changes
Core tables
Current
actor
archive
block
block_target
bot_passwords
category
categorylinks
change_tag
change_tag_def
collation
comment
content
content_models
existencelinks
externallinks
file
filearchive
filerevision
filetypes
image
imagelinks
interwiki
iwlinks
ipblocks_restrictions
ip_changes
job
l10n_cache
langlinks
linktarget
logging
log_search
objectcache
oldimage
page
pagelinks
page_props
page_restrictions
protected_titles
querycache
querycachetwo
querycache_info
recentchanges
redirect
revision
searchindex
sites
site_identifiers
site_stats
slots
slot_roles
templatelinks
text
updatelog
uploadstash
user
user_autocreate_serial
user_former_groups
user_groups
user_newtalk
user_properties
watchlist
watchlist_expiry
watchlist_label
watchlist_label_member
Former
blobs
brokenlinks
config
cur
external_user
hitcounter
image_comment_temp
ipblocks
ipblocks_old
links
linkscc
math
module_deps
msg_resource
msg_resource_links
old
profiling
revision_actor_temp
revision_comment_temp
tag_summary
trackbacks
transcache
user_rights
valid_tag
validate
Retrieved from "
Category
MediaWiki database tables
Manual:user table
Add topic