Вопрос

У меня есть база данных 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top