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