The
user_groups
table maps the users in a particular MediaWiki installation to their corresponding
user rights
.
Each group can be assigned a mixture of permissions through
LocalSettings.php
or via extensions; all users of a particular group have those permissions granted to them as a result of their membership in the group.
As the table is separate from the
user
table, this allows for the creation of a shared user database with permissions that vary from wiki to wiki within a wiki farm.
This table was introduced on
r5648
, in MediaWiki 1.5.
If you are using MediaWiki 1.3 or 1.4, have a look at
Manual:User rights (older versions)
.
Before MediaWiki 1.5, user rights were stored in the
user_rights
field of the
user
table.
All unregistered users automatically belong to the
'*'
group and only to that group; all registered users additionally are automatically part of the
'user'
group.
User groups are additive; as a result, all registered users have all the privileges assigned to the
'*'
group as well.
Formerly there was a "sysop bit"; now, making a user a sysop adds a row to
user_groups
.
Fields
[
edit
]
ug_user
[
edit
]
This field links to a given user's
user_id
.
It is a
foreign key
used to link accounts with their assigned privileges.
ug_group
[
edit
]
This field stores the user's permissions, which are stored as groups.
At runtime,
$wgGroupPermissions
will associate group keys with particular permissions; a user will have the combined permissions of any group they're explicitly in, plus the implicit
'*'
and
'user'
groups.
Example
ug_group
values: 'bot', 'bureaucrat', 'sysop'.
There is one row for each (explicit) group the user is in.
ug_expiry
[
edit
]
MediaWiki version:
|
≥
1.29
|
This field stores a user group's expiry time.
It is similar to pr_expiry in the
page_restrictions
table and ipb_expiry in the
ipblocks
table.
Schema summary
[
edit
]
MediaWiki version:
|
≥
1.29
|
DESCRIBE
user_groups
;
+-----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+-------+
| ug_user | int(10) unsigned | NO | PRI | 0 | |
| ug_group | varbinary(255) | NO | PRI | | |
| ug_expiry | varbinary(14) | YES | MUL | NULL | |
+-----------+------------------+------+-----+---------+-------+
MediaWiki versions:
|
1.21 – 1.28
|
DESCRIBE
user_groups
;
+----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+-------+
| ug_user | int(10) unsigned | NO | PRI | 0 | |
| ug_group | varbinary(255) | NO | PRI | | |
+----------+------------------+------+-----+---------+-------+
MediaWiki versions:
|
1.19 – 1.20
|
DESCRIBE
user_groups
;
+----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+-------+
| ug_user | int(10) unsigned | NO | PRI | 0 | |
| ug_group | varbinary(32) | NO | PRI | | |
+----------+------------------+------+-----+---------+-------+
MediaWiki versions:
|
1.10 – 1.18
|
DESCRIBE
user_groups
;
+----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+-------+
| ug_user | int(10) unsigned | NO | PRI | 0 | |
| ug_group | varbinary(16) | NO | PRI | | |
+----------+------------------+------+-----+---------+-------+
MediaWiki versions:
|
1.5 – 1.9
|
DESCRIBE
user_groups
;
+----------+-----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-----------------+------+-----+---------+-------+
| ug_user | int(5) unsigned | NO | PRI | 0 | |
| ug_group | char(16) | NO | PRI | | |
+----------+-----------------+------+-----+---------+-------+
Indexes
[
edit
]
MediaWiki version:
|
≥
1.29
|
SHOW
INDEX
IN
user_groups
;
+-------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| user_groups | 0 | PRIMARY | 1 | ug_user | A | 0 | NULL | NULL | | BTREE | | |
| user_groups | 0 | PRIMARY | 2 | ug_group | A | 0 | NULL | NULL | | BTREE | | |
| user_groups | 1 | ug_group | 1 | ug_group | A | 0 | NULL | NULL | | BTREE | | |
| user_groups | 1 | ug_expiry | 1 | ug_expiry | A | 0 | NULL | NULL | YES | BTREE | | |
+-------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
Default MediaWiki groups
[
edit
]
In a default MediaWiki installation, ug_group can be one of the following:
SELECT
DISTINCT
`
ug_group
`
FROM
`
user_groups
`
;
+------------+
| ug_group |
+------------+
| bot |
| bureaucrat |
| sysop |
+------------+
|
---|
Engines
| |
---|
Technical documentation
| |
---|
Configuration
| |
---|
Development
| |
---|
Core tables
| |
---|