Как дать доступ пользователю только для одной таблицы?

Чтобы дать пользователю доступ только к одной таблице в базе данных MySQL, вы должны выполнить несколько шагов:

1. Создайте нового пользователя в базе данных с помощью команды CREATE USER:

   CREATE USER 'имя_пользователя'@'хост' IDENTIFIED BY 'пароль';

Вместо 'имя_пользователя' укажите имя пользователя, которому необходимо предоставить доступ, а вместо 'хост' - хост или IP-адрес, с которого он может получить доступ к базе данных. 'пароль' - пароль для пользователя.

2. Далее необходимо предоставить этому пользователю права на доступ к базе данных. Для этого используйте команду GRANT:

   GRANT SELECT, INSERT, UPDATE, DELETE ON имя_базы_данных.имя_таблицы TO 'имя_пользователя'@'хост';

Вместо 'имя_базы_данных' и 'имя_таблицы' укажите соответственно имя базы данных и таблицы, к которой вы хотите дать доступ пользователю. В списке привилегий (SELECT, INSERT, UPDATE, DELETE) укажите те, которые пользователь должен иметь.

3. При необходимости, вы также можете ограничить действия, которые пользователь может выполнять только на определенных столбцах таблицы. Для этого вы можете использовать команду GRANT с указанием столбцов:

   GRANT SELECT(col1, col2), INSERT(col1, col2), UPDATE(col1, col2) ON имя_базы_данных.имя_таблицы TO 'имя_пользователя'@'хост';

Вместо 'col1', 'col2' укажите имена столбцов, на которые пользователь должен иметь доступ.

4. Наконец, примените изменения с помощью команды FLUSH PRIVILEGES;:

   FLUSH PRIVILEGES;

Это перезагрузит системные таблицы привилегий и применит внесенные изменения.

Теперь пользователь сможет получить доступ только к указанной таблице в базе данных MySQL с определенными правами и ограничениями.