Как запретить пользователю доступ к определенной схеме? - PullRequest
4 голосов
/ 08 мая 2011

У меня есть сервер, который был создан для меня. На нем есть схема под названием «тест».

Я вошел в систему как пользователь root и создал новую схему с именем "WEB".

create schema WEB;

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

Итак, я создал пользователя так:

create user webtestuser identified by 'webtestuser';

grant select, insert, update, delete on WEB.* to webtestuser;

Проблема в том, что когда я вхожу в систему с новым пользователем, я все еще вижу «тестовую» схему. Даже когда я «отменяю все» у пользователя, эта схема все еще видна.

Что-нибудь, что мне здесь не хватает?

Спасибо!

1 Ответ

3 голосов
/ 08 мая 2011

По умолчанию mysql поставляется с некоторыми грантами для определенных тестовых схем. Они ALL ON test для всех пользователей, а также ALL ON test\_% для всех пользователей (test\_% соответствует таким вещам, как test_foo, test_123)

Из-за того, как они определены, я не вижу способа удаления этих грантов с использованием синтаксиса REVOKE ... FROM, поэтому вам придется использовать следующее:

DELETE FROM mysql.db WHERE Db IN("test","test\_%") AND User="" AND Host="%";
FLUSH PRIVILEGES;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...