MySQL Root User - PullRequest
       6

MySQL Root User

0 голосов
/ 30 января 2012

Я пытался создать очень простое событие MySQL и понял, что действие не выполняется. Затем я понял, что у пользователя, которого я использовал, не было супер привилегий (или любых других привилегий, связанных с событиями). Я попытался предоставить все привилегии этому пользователю через phpMyAdmin, но это не сработало (делает с тех пор, как я вошел в систему как этот пользователь, а не как пользователь root). На самом деле, я не уверен, есть ли в моей учетной записи пользователь root. Как узнать, кто является пользователем root (имя пользователя и пароль)?

Я пользуюсь хостинг-провайдером, у которого есть cpanel, и когда я просматриваю список моих пользователей mysql, я вижу только тех, кого создал. Есть ли способ узнать через phpMyAdmin, если я вошел в систему как другой пользователь?

Кроме того, всякий раз, когда я создаю пользователя в cpanel, я всегда устанавливаю флажок для предоставления «всех привилегий», но я только что обнаружил, что супер привилегии и некоторые другие привилегии отсутствуют в списке. Насколько я могу судить, я не смогу создавать какие-либо события mysql, поскольку не могу предоставить супер привилегии ни одному из моих пользователей.

Дополнение:

При назначении пользователя базе данных единственными привилегиями, которые я могу выбрать, являются

  • 1018 * ALTER *
  • ALTER ROUTINE
  • CREATE
  • CREATE ROUTINE
  • СОЗДАТЬ ВРЕМЕННЫЕ СТОЛЫ
  • СОЗДАТЬ ВИД
  • DELETE
  • DROP
  • EXECUTE
  • ИНДЕКС
  • INSERT
  • ЗАМКИ
  • СПИСОК ЛИТЕРАТУРЫ
  • SELECT
  • ПОКАЗАТЬ ПОКАЗАТЬ
  • TRIGGER

Из того, что все говорят в своих ответах, похоже, что я использую общую базу данных, расписание событий либо отключено, и / или мне не разрешено предоставлять пользователям привилегии, связанные с событиями. Вид отстой ..

Но сейчас я буду использовать задания cron.

Ответы [ 4 ]

3 голосов
/ 30 января 2012

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

2 голосов
/ 30 января 2012

Практическое правило: Ваше приложение никогда не нуждается в привилегиях суперпользователя.

Даже не использовать систему событий.

Единственное, для чего вам нужен SUPER в этом случае - это включить или отключить планировщик (это настройка для всего сервера). Если вы используете хост с общей базой данных, это будет зависеть от провайдера, включен ли планировщик и предоставлена ​​ли вам привилегия EVENT для вашей базы данных.

Если вы не используете общий хост, проверьте my.ini на наличие строки планировщика событий и убедитесь, что она включена. Затем убедитесь, что вы предоставили EVENT своему идентификатору пользователя приложения. Привилегия EVENT должна предоставляться, если вы использовали GRANT ALL PRIVILEGES в базе данных (в отличие от отдельных таблиц).

0 голосов
/ 30 января 2012

Я пытался создать очень простое событие MySQL и понял, что действие не выполняется.Затем я понял, что у пользователя, которого я использовал, не было супер привилегий

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

0 голосов
/ 30 января 2012

select user() сообщит вам логин, под которым выполняется запрос.

Однако вы НЕ должны предоставлять привилегии «суперпользователя» любому коду, который обрабатывает операции с БД для общедоступного кода. Для обеспечения надлежащей безопасности общедоступный код БД ДОЛЖЕН иметь минимальные привилегии, необходимые для выполнения работы. Обычно это будет обновлять / вставлять / удалять / выбирать только.

Предоставление таких вещей, как drop / alter / create / grant / etc ... просто напрашивается на неприятности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...