MySQL, проблема с разрешением
-
20-09-2019 - |
Вопрос
У меня есть база данных MySQL, в которой есть несколько баз данных, используемых более чем одним веб-приложением.
Теперь мне нужно создать новую базу данных, доступ к которой можно получить только через новую учетную запись пользователя.Я использовал Navicat v5.3.3 для управления пользователями, чтобы попытаться настроить это, но, похоже, это не работает, и я не знаю, связано ли это с MySQL или Navicat.
Но учитывая, что мне нужна новая БД, к которой может получить доступ только новая учетная запись (а не другие базы данных), как лучше всего это настроить?
Спасибо
Решение
Вам просто нужно создать базу данных и предоставить пользователю необходимые привилегии, вам следует запустить инструмент запросов MySQL и ввести следующие запросы:
CREATE DATABASE foobar;
GRANT ALL PRIVILEGES ON foobar.* TO 'foobar_user'@'localhost'
IDENTIFIED BY 'goodsecret';
вы можете взглянуть на руководство MySQL здесь
Другие советы
Обычно я использую phpMyAdmin или интерфейс командной строки MySQL.Создайте базу данных и (используя учетную запись суперпользователя) убедитесь, что у пользователя есть соответствующие разрешения для этой базы данных.
Что-то вроде:
CREATE DATABASE database_name;
GRANT ALL ON database_name.* TO new_user@'localhost' IDENTIFIED BY 'password';
Это предоставит «новому_пользователю» все привилегии над содержимым имя_базы данных при условии, что пользователь подключен с локального хоста с использованием «пароля».
Если вам нужен графический интерфейс — я настоятельно рекомендую phpMyAdmin (http://www.phpmyadmin.net/)
РЕДАКТИРОВАТЬ:Судя по вашему описанию, вам также необходимо убедиться, что разрешения для других баз данных установлены таким образом, чтобы этот новый пользователь не мог получить к ним доступ;вы можете использовать «SHOW GRANTS», чтобы увидеть, какие пользователи имеют права на какие таблицы - см. http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug