Таблица mysql.global_priv
Таблица mysql.global_priv была введена в MariaDB 10.4.1 для замены таблицы mysql.user.
Таблица mysql.global_priv содержит информацию о пользователях, имеющих разрешения на доступ к серверу MariaDB, и их глобальные привилегии.
Обратите внимание, что привилегии MariaDB устанавливаются на нескольких уровнях. Пользователю может не быть предоставлена привилегия create на уровне пользователя, но он всё равно может иметь разрешение create на определённые таблицы или базы данных, например. Для более полного представления системы привилегий MariaDB, ознакомьтесь с привилегиями.
Таблица mysql.global_priv содержит следующие поля:
| Поле | Тип | Null | Ключ | Значение по умолчанию | Описание |
|---|---|---|---|---|---|
Host |
char(60) |
NO | PRI | Хост (вместе с User образует уникальный идентификатор для данной учётной записи). |
|
User |
char(80) |
NO | PRI | Пользователь (вместе с Host образует уникальный идентификатор для данной учётной записи). |
|
Priv |
longtext |
NO | Глобальные привилегии, предоставленные данной учётной записи и другие свойства учётной записи |
Начиная с MariaDB 10.5.2, для помощи серверу в определении версии, с которой был записан запрос на привилегию, поле priv содержит новое JSON-поле version_id (MDEV-21704).
Примеры
select * from mysql.global_priv;
+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------+
| Host | User | Priv |
+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------+
| localhost | root | {"access": 18446744073709551615,"plugin":"mysql_native_password","authentication_string":"*6C387FC3893DBA1E3BA155E74754DA6682D04747"} |
| 127.% | msandbox | {"access":1073740799,"plugin":"mysql_native_password","authentication_string":"*6C387FC3893DBA1E3BA155E74754DA6682D04747"} |
| localhost | msandbox | {"access":1073740799,"plugin":"mysql_native_password","authentication_string":"*6C387FC3893DBA1E3BA155E74754DA6682D04747"} |
| localhost | msandbox_rw | {"access":487487,"plugin":"mysql_native_password","authentication_string":"*6C387FC3893DBA1E3BA155E74754DA6682D04747"} |
| 127.% | msandbox_rw | {"access":487487,"plugin":"mysql_native_password","authentication_string":"*6C387FC3893DBA1E3BA155E74754DA6682D04747"} |
| 127.% | msandbox_ro | {"access":262145,"plugin":"mysql_native_password","authentication_string":"*6C387FC3893DBA1E3BA155E74754DA6682D04747"} |
| localhost | msandbox_ro | {"access":262145,"plugin":"mysql_native_password","authentication_string":"*6C387FC3893DBA1E3BA155E74754DA6682D04747"} |
| 127.% | rsandbox | {"access":524288,"plugin":"mysql_native_password","authentication_string":"*B07EB15A2E7BD9620DAE47B194D5B9DBA14377AD"} |
+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------+
Формат для чтения:
SELECT CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)) FROM mysql.global_priv;
+--------------------------------------------------------------------------------------+
| CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)) |
+--------------------------------------------------------------------------------------+
| root@localhost => {
"access": 18446744073709551615,
"plugin": "mysql_native_password",
"authentication_string": "*6C387FC3893DBA1E3BA155E74754DA6682D04747"
} |
| msandbox@127.% => {
"access": 1073740799,
"plugin": "mysql_native_password",
"authentication_string": "*6C387FC3893DBA1E3BA155E74754DA6682D04747"
} |
+--------------------------------------------------------------------------------------+
Конкретный пользователь:
SELECT CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)) FROM mysql.global_priv
WHERE user='marijn';
+--------------------------------------------------------------------------------------+
| CONCAT(user, '@', host, ' => ', JSON_DETAILED(priv)) |
+--------------------------------------------------------------------------------------+
| marijn@localhost => {
"access": 0,
"plugin": "mysql_native_password",
"authentication_string": "",
"account_locked": true,
"password_last_changed": 1558017158
} |
+--------------------------------------------------------------------------------------+
Начиная с MariaDB 10.5.2:
GRANT FILE ON *.* TO user1@localhost;
SELECT Host, User, JSON_DETAILED(Priv) FROM mysql.global_priv WHERE user='user1'\G
*************************** 1. row ***************************
Host: localhost
User: user1
JSON_DETAILED(Priv): {
"access": 512,
"plugin": "mysql_native_password",
"authentication_string": "",
"password_last_changed": 1581070979,
"version_id": 100502
}
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mysqlglobal_priv-table/