MySQL, проблема с разрешениями - PullRequest
0 голосов
/ 18 ноября 2009

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

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 ноября 2009

Вам просто нужно создать базу данных и предоставить пользователю необходимые привилегии, вам нужно запустить инструмент запросов mysql и набрать следующие запросы:

CREATE DATABASE foobar;
GRANT ALL PRIVILEGES ON foobar.* TO 'foobar_user'@'localhost'
IDENTIFIED BY 'goodsecret';

вы можете взглянуть на руководство по MySQL здесь

1 голос
/ 18 ноября 2009

Я бы обычно использовал phpMyAdmin или интерфейс командной строки MySQL. Создайте базу данных и (используя свою учетную запись суперпользователя) убедитесь, что у пользователя есть соответствующие разрешения для этой базы данных.

Что-то вроде:

CREATE DATABASE database_name;
GRANT ALL ON database_name.* TO new_user@'localhost' IDENTIFIED BY 'password';

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

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

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

...