MySQL, проблема с разрешениями

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

Теперь мне нужно создать новую базу данных, доступ к которой возможен только через новую учетную запись пользователя. Я использовал Navicat v5.3.3 для управления пользователями, чтобы попытаться настроить это, но, похоже, это не работает, и я не знаю, стало ли это из-за MySQL или Navicat.

Но с учетом того, что я хочу новую БД, к которой у новой учетной записи есть доступ только (но не к другим БД), как лучше всего это настроить?

Спасибо

2 ответа

Решение

Вам просто нужно создать свою базу данных и предоставить пользователю необходимые привилегии, вы должны запустить инструмент запросов 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';

Это даст "new_user" все привилегии для содержимого database_name, при условии, что пользователь подключен с локального хоста с использованием "пароля".

Если вы хотите графический интерфейс - я настоятельно рекомендую phpMyAdmin ( http://www.phpmyadmin.net/)

РЕДАКТИРОВАТЬ: Основываясь на вашем описании, вы также хотите убедиться, что разрешения для других баз данных установлены, чтобы этот новый пользователь не мог получить к ним доступ; Вы можете использовать 'ПОКАЗАТЬ ГРАНТЫ', чтобы увидеть, какие пользователи имеют права на какие таблицы - см. http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug

Другие вопросы по тегам