Spec-Zone.ru › MariaDB

mysql.user Таблица

MariaDB, начиная с 10.4

В MariaDB 10.4 и более поздних версиях, таблица mysql.global_priv заменила таблицу mysql.user, и mysql.user следует считать устаревшей. Теперь это вид на mysql.global_priv, созданный для совместимости со старыми приложениями и скриптами мониторинга. Новые инструменты должны использовать таблицы INFORMATION_SCHEMA. Начиная с MariaDB 10.4.13, специальный пользователь mariadb.sys создаётся как определяющий для этого вида. Ранее root был определяющим, что приводило к проблемам с привилегиями при изменении этого имени пользователя (MDEV-19650).

Таблица mysql.user содержит информацию о пользователях, имеющих разрешение на доступ к серверу MariaDB, и их глобальные привилегии. К таблице можно обращаться через запросы, и хотя её можно напрямую обновлять, лучше использовать GRANT и CREATE USER для добавления пользователей и привилегий.

Обратите внимание, что привилегии MariaDB действуют на нескольких уровнях. Пользователю может не быть предоставлено разрешение create на уровне пользователя, но он всё равно может иметь разрешение create на определённые таблицы или базы данных, например. См. разрешения для более полного представления системы привилегий MariaDB.

Таблица mysql.user содержит следующие поля:

Поле Тип NULL Ключ Значение по умолчанию Описание
Host char(60) НЕТ PRI Хост (вместе с User образует уникальный идентификатор для этой учетной записи).
User char(80) НЕТ PRI Пользователь (вместе с Host образует уникальный идентификатор для этой учетной записи).
Password longtext (>= MariaDB 10.4.1), char(41) (<= MariaDB 10.4.0) НЕТ Хэшированный пароль, сгенерированный функцией PASSWORD().
Select_priv enum('N','Y') НЕТ N Может выполнять запросы SELECT.
Insert_priv enum('N','Y') НЕТ N Может выполнять запросы INSERT.
Update_priv enum('N','Y') НЕТ N Может выполнять запросы UPDATE.
Delete_priv enum('N','Y') НЕТ N Может выполнять запросы DELETE.
Create_priv enum('N','Y') НЕТ N Может создавать базы данных CREATE DATABASE или таблицы CREATE TABLE.
Drop_priv enum('N','Y') НЕТ N Может удалять базы данных DROP DATABASE или таблицы DROP TABLE.
Reload_priv enum('N','Y') НЕТ N Может выполнять запросы FLUSH или эквивалентные команды mariadb-admin.
Shutdown_priv enum('N','Y') НЕТ N Может завершать работу сервера командой SHUTDOWN или mariadb-admin shutdown.
Process_priv enum('N','Y') НЕТ N Может отображать информацию об активных процессах, используя SHOW PROCESSLIST или mariadb-admin processlist.
File_priv enum('N','Y') НЕТ N Может читать и записывать файлы на сервере, используя запросы, такие как LOAD DATA INFILE, или функции, такие как LOAD_FILE(). Также необходимо для создания внешних таблиц CONNECT. Сервер MariaDB должен иметь разрешение на доступ к этим файлам.
Grant_priv enum('N','Y') НЕТ N Пользователь может предоставлять имеющиеся у него привилегии с помощью grant.
References_priv enum('N','Y') НЕТ N Не используется
Index_priv enum('N','Y') НЕТ N Может создавать индексы в таблице с помощью инструкции CREATE INDEX. Без привилегии INDEX, пользователь все равно может создавать индексы при создании таблицы с помощью инструкции CREATE TABLE, если у него есть привилегия CREATE, и может создавать индексы с помощью инструкции ALTER TABLE, если у него есть привилегия ALTER.
Alter_priv enum('N','Y') НЕТ N Может выполнять инструкции ALTER TABLE.
Show_db_priv enum('N','Y') НЕТ N Может перечислять все базы данных с помощью запроса SHOW DATABASES. Без привилегии SHOW DATABASES, пользователь все равно может выполнить запрос SHOW DATABASES, но он будет перечислять только базы данных, содержащие таблицы, на которые у него есть права.
Super_priv enum('N','Y') НЕТ N Может выполнять суперпользовательские запросы: CHANGE MASTER TO, KILL (пользователи, у которых нет этой привилегии, могут только KILL свои потоки), PURGE LOGS, SET глобальные переменные системы или команду mariadb-admin debug. Также это разрешение позволяет пользователю записывать данные, даже если опция запуска read_only установлена, включить или отключить ведение журнала, включить или отключить репликацию на подчиненных серверах, указать DEFINER для запросов, которые поддерживают эту опцию, подключиться один раз после достижения MAX_CONNECTIONS. Если для опции mysqld init-connect был указан запрос, эта команда не будет выполнена при подключении пользователя с привилегиями SUPER к серверу.
Create_tmp_table_priv enum('N','Y') НЕТ N Может создавать временные таблицы с помощью инструкции CREATE TEMPORARY TABLE.
Lock_tables_priv enum('N','Y') НЕТ N Получать явные блокировки с помощью инструкции LOCK TABLES; пользователю также необходима привилегия SELECT на таблице для ее блокировки.
Execute_priv enum('N','Y') НЕТ N Может выполнять хранимые процедуры или функции.
Repl_slave_priv enum('N','Y') НЕТ N Учетные записи, используемые подчиненными серверами на основном сервере, нуждаются в этой привилегии. Это необходимо для получения обновлений, внесенных на основном сервере.
Repl_client_priv enum('N','Y') НЕТ N Может выполнять запросы SHOW MASTER STATUS и SHOW SLAVE STATUS.
Create_view_priv enum('N','Y') НЕТ N Может создать представление с помощью инструкции CREATE_VIEW.
Show_view_priv enum('N','Y') НЕТ N Может отобразить инструкцию CREATE VIEW для создания представления с помощью инструкции SHOW CREATE VIEW.
Create_routine_priv enum('N','Y') НЕТ N Может создавать хранимые программы с помощью инструкций CREATE PROCEDURE и CREATE FUNCTION.
Alter_routine_priv enum('N','Y') НЕТ N Может изменять характеристики хранимой функции с помощью инструкции ALTER FUNCTION.
Create_user_priv enum('N','Y') НЕТ N Может создавать пользователя с помощью инструкции CREATE USER или неявно создавать пользователя с помощью инструкции GRANT.
Event_priv enum('N','Y') НЕТ N Создавать, удалять и изменять события.
Trigger_priv enum('N','Y') НЕТ N Может выполнять триггеры, связанные с таблицами, которые пользователь обновляет, выполнять инструкции CREATE TRIGGER и DROP TRIGGER.
Create_tablespace_priv enum('N','Y') НЕТ N
Delete_history_priv enum('N','Y') НЕТ N Может удалять строки, созданные с помощью системной версиирования.
ssl_type enum('', 'ANY', 'X509', 'SPECIFIED') НЕТ Тип TLS - см. TLS параметры.
ssl_cipher blob НЕТ NULL Шифр TLS - см. TLS параметры.
x509_issuer blob НЕТ NULL Шифр X509 - см. TLS параметры.
x509_subject blob НЕТ NULL Предмет SSL - см. TLS параметры.
max_questions int(11) unsigned НЕТ 0 Количество запросов, которые пользователь может выполнить в час. Ноль означает без ограничений. См. пределы ресурсов учетной записи.
max_updates int(11) unsigned НЕТ 0 Количество обновлений, которые пользователь может выполнить в час. Ноль означает без ограничений. См. пределы ресурсов учетной записи.
max_connections int(11) unsigned НЕТ 0 Количество подключений, которые может начать учетная запись в час. Ноль означает без ограничений. См. пределы ресурсов учетной записи.
max_user_connections int(11) НЕТ 0 Количество одновременных подключений, которые может иметь учетная запись. Ноль означает без ограничений. См. пределы ресурсов учетной записи.
plugin char(64) NO Подключаемый модуль аутентификации, используемый при подключении. Если пусто, используется по умолчанию.
authentication_string text NO NULL Строка аутентификации для подключаемого модуля аутентификации.
password_expired enum('N','Y') NO N Параметр совместимости с MySQL, не реализован в MariaDB.
is_role enum('N','Y') NO N Является ли пользователь ролью.
default_role char(80) NO N Роль, которая будет автоматически включена при входе пользователя.
max_statement_time decimal(12,6) NO 0.000000 Если не равно нулю, то время, в течение которого запросы могут выполняться до их автоматического прерывания.
Поле Тип Null Ключ Значение по умолчанию Описание

Переменная состояния Acl_roles указывает количество строк в таблице mysql.user, где is_role='Y'.

Переменная состояния Acl_users указывает количество строк в таблице mysql.user, где is_role='N'.

Подключаемый модуль аутентификации

Когда столбец plugin пустой, MariaDB по умолчанию использует для аутентификации учетных записей либо подключаемый модуль mysql_native_password, либо mysql_old_password. Выбор определяется хэшем, используемым в значении столбца Password. Если пароль не установлен или используется хэш пароля версии 4.1 (который имеет длину 41 символ), MariaDB использует подключаемый модуль mysql_native_password. Подключаемый модуль mysql_old_password используется с хэшами паролей до версии 4.1 (которые имеют длину 16 символов).

MariaDB также поддерживает использование альтернативных подключаемых модулей аутентификации. Когда столбец plugin для данной учетной записи не пустой, MariaDB использует его для аутентификации попыток подключения. Затем конкретный подключаемый модуль использует значение столбца Password или столбца authentication_string для аутентификации пользователя.

Конкретный подключаемый модуль аутентификации можно использовать для учетной записи, указав IDENTIFIED VIA authentication_plugin в операторах CREATE USER, ALTER USER или GRANT.

Например, следующая команда создаст учетную запись, которая использует подключаемый модуль аутентификации PAM:

CREATE USER foo2@test IDENTIFIED VIA pam;

Если конкретный подключаемый модуль аутентификации использует столбец authentication_string, то это значение для учетной записи можно указать после ключевого слова USING или AS. Например, подключаемый модуль аутентификации PAM принимает имя службы service name, которое будет помещено в столбец authentication_string для учетной записи:

CREATE USER foo2@test IDENTIFIED VIA pam USING 'mariadb';
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают позицию MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mysql-user-table/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API