mysql.host Таблица
Использование
До MariaDB 5.5, таблица mysql.host содержала информацию о хостах и связанных с ними привилегиях. При определении разрешений, если соответствующая запись в таблице mysql.db имела пустое значение хоста, проверялась таблица mysql.host.
Данная таблица не изменяется ни одним оператором GRANT и должна обновляться вручную.
С MariaDB 10.0, данная таблица больше не используется.
См. разрешения для более полного представления системы привилегий MariaDB.
В MariaDB 10.3 и ранее, данная таблица создавалась с помощью движка хранения MyISAM.
В MariaDB 10.4 и более поздних версиях, данная таблица больше не создаётся. Однако, если она создана, она будет использоваться.
Поля таблицы
Таблица mysql.host содержит следующие поля:
| Поле | Тип | Null | Ключ | Значение по умолчанию | Описание |
|---|---|---|---|---|---|
Host |
char(60) |
NO | PRI | Хост (вместе с Db формирует уникальный идентификатор для этой записи). |
|
Db |
char(64) |
NO | PRI | База данных (вместе с Host формирует уникальный идентификатор для этой записи). |
|
Select_priv |
enum('N','Y') |
NO | N | Может выполнять операторы SELECT. | |
Insert_priv |
enum('N','Y') |
NO | N | Может выполнять операторы INSERT. | |
Update_priv |
enum('N','Y') |
NO | N | Может выполнять операторы UPDATE. | |
Delete_priv |
enum('N','Y') |
NO | N | Может выполнять операторы DELETE. | |
Create_priv |
enum('N','Y') |
NO | N | Может создавать таблицы с помощью CREATE TABLE. | |
Drop_priv |
enum('N','Y') |
NO | N | Может удалять базы данных (DROP DATABASE) или таблицы (DROP TABLE). | |
Grant_priv |
enum('N','Y') |
NO | N | Пользователь может предоставлять разрешения, которыми обладает. | |
References_priv |
enum('N','Y') |
NO | N | Не используется | |
Index_priv |
enum('N','Y') |
NO | N | Может создавать индексы в таблице с помощью CREATE INDEX. Без привилегии INDEX, пользователь по-прежнему может создавать индексы при создании таблицы с помощью CREATE TABLE, если у него есть привилегия CREATE, и пользователь может создавать индексы с помощью ALTER TABLE, если у него есть привилегия ALTER. |
|
Alter_priv |
enum('N','Y') |
NO | N | Может выполнять операторы ALTER TABLE. | |
Create_tmp_table_priv |
enum('N','Y') |
NO | N | Может создавать временные таблицы с помощью CREATE TEMPORARY TABLE. | |
Lock_tables_priv |
enum('N','Y') |
NO | N | Получать явные блокировки с помощью LOCK TABLES; пользователь также должен иметь привилегию SELECT на таблице, чтобы заблокировать её. |
|
Create_view_priv |
enum('N','Y') |
NO | N | Может создавать представление с помощью CREATE VIEW. | |
Show_view_priv |
enum('N','Y') |
NO | N | Может отображать оператор CREATE VIEW для создания представления с помощью оператора SHOW CREATE VIEW. | |
Create_routine_priv |
enum('N','Y') |
NO | N | Может создавать хранимые программы с помощью операторов CREATE PROCEDURE и CREATE FUNCTION. | |
Alter_routine_priv |
enum('N','Y') |
NO | N | Может изменять характеристики хранимой функции с помощью оператора ALTER FUNCTION. | |
Execute_priv |
enum('N','Y') |
NO | N | Может выполнять хранимые процедуры или функции. | |
Trigger_priv |
enum('N','Y') |
NO | N | Может выполнять триггеры, связанные с обновляемыми пользователем таблицами, выполнять операторы CREATE TRIGGER и DROP TRIGGER. |
Как создать
Если вам нужна возможность разрешить доступ к базе данных только с определённых хостов, вы можете создать таблицу хостов с помощью следующей команды:
CREATE TABLE IF NOT EXISTS mysql.host (Host char(60) binary DEFAULT '' NOT NULL,
Db char(64) binary DEFAULT '' NOT NULL,
Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
PRIMARY KEY /*Host*/ (Host,Db) )
engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin
comment='Host privileges; Merged with database privileges';
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mysqlhost-table/