Я довольно новый для MySQL и я создание тестовых таблиц и т.д.Пользователь без каких-либо разрешений по-прежнему можно выбрать
Во всяком случае, я создал новый пользователь, используя
CREATE USER 'myUser'@'localhost' IDENTIFIED BY 'myPassword';
Теперь, когда я вхожу в этот пользователь, я могу SELECT
из таблицы, которую я создал с помощью root ранее. Неужели это невозможно? Пользователь не имеет разрешений SELECT
или даже каких-либо разрешений. Если (вошли в систему с правами администратора) я сделать что-либо:
SHOW GRANTS FOR 'myUser'@'localhost';
Или
SELECT * FROM information_schema.user_privileges WHERE grantee LIKE "'myUser'@%";
Я могу видеть, что они имеют разрешения только ИСПОЛЬЗОВАНИЮ. Мое понимание - это разрешение, указывающее, что у пользователя нет разрешений.
Как этот пользователь может выбрать из моего стола?
Если я:
SELECT * FROM information_schema.table_privileges;
Нет результатов нет.
Что мне здесь не хватает? Некоторые вещи, например, SELECT
, неявно предоставленные новым пользователям? Должен ли я явно отменить это?
Если да, то какие другие разрешения неявно предоставляются?
Идеально, на что я нацелен, это пользователь, который ничего не может сделать, кроме запуска одной (или более) хранимых процедур, которые я указываю с помощью GRANT EXECUTE ON
.
Возможно, вы точно не знаете, какой пользователь/хост вы подключаете; установите флажок «SELECT CURRENT_USER();». – fenway
Я получаю «myUser @ localhost», что я и ожидал. Однако, если все работает, как я думал, они собираются, не должны ли мне отказывать в разрешениях на это? Чтобы заблокировать все запросы SELECT, в том числе и таблицы,? – Interminable
это не «истинный» SELECT (т. Е. Не доступ к таблице). (USAID) позволяет вам входить на сервер БД, но не намного больше. – fenway