Как добавить супер-привилегии в базу данных mysql?
Я пытаюсь выполнить запрос в mysql.
SET GLOBAL log_bin_trust_function_creators =1;
Ошибка:
SQL-запрос:
SET GLOBAL log_bin_trust_function_creators = 1
MySQL сказал:
# 1227 - Доступ запрещен; вам нужна привилегия SUPER для этой операции
Я хочу знать, как назначить привилегии SUPER
для любой базы данных
Ответы
Ответ 1
Вы можете добавить супер привилегию, используя phpmyadmin
:
Перейдите в PHPMYADMIN> привилегии> Редактировать пользователя> На вкладке "Администратор" Нажмите "SUPER". > Go
Если вы хотите сделать это через Console
, сделайте так:
mysql> GRANT SUPER ON *.* TO [email protected]'localhost' IDENTIFIED BY 'password';
После выполнения приведенного выше кода завершите его с помощью:
mysql> FLUSH PRIVILEGES;
Вы должны сделать это на *.*
, потому что SUPER - это не привилегия, которая применяется только к одной базе данных, она глобальная.
Ответ 2
Вы можете увидеть привилегии здесь. ![enter image description here]()
Затем вы можете редактировать пользователя
Ответ 3
В Sequel Pro зайдите в окно "Учетные записи пользователей". Обратите внимание, что любая программа администрирования MySQL может быть заменена вместо Sequel Pro.
Добавьте следующие учетные записи и привилегии:
GRANT SUPER ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD
Ответ 4
только запрос phpmyadmin печатает после предоставления суперпользователя. надеюсь помочь кому-то с консолью:
ON $. $TO- > $= * не показывает, когда вы ставите два с точкой между ними.
ОТКРЫВАЙТЕ ВСЕ ПРИВИЛЕГИИ. FROM 'usr' @'localhost'; GRANT ALL ПРИВИЛЕГИИ. TO 'usr' @'localhost' НЕ ТРЕБУЕТСЯ ВАРИАНТ ГРАНТА MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
и наоборот, удалив грант:
ОТКРЫВАЙТЕ ВСЕ ПРИВИЛЕГИИ. FROM 'dos007' @'localhost'; REVOKE GRANT ВАРИАНТ ВКЛ. FROM 'dos007' @'localhost'; ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ. TO 'dos007' @'localhost' НЕ ТРЕБУЕТСЯ MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
проверенный на бродяжнике, должен работать в любом mysql
Ответ 5
На Centos 5 я получал всевозможные ошибки, пытаясь внести изменения в некоторые значения переменных из оболочки MySQL, после входа в систему с соответствующими uid и pw (с правами root). Ошибка, которую я получил, была что-то вроде этого:
mysql> -- Set some variable value, for example
mysql> SET GLOBAL general_log='ON';
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
В момент крайней счастливой случайности я сделал следующее:
OS-Shell> sudo mysql # no DB uid, no DB pw
Пожалуйста, обратите внимание, что я не предоставил UID и пароль БД
mysql> show variables;
mysql> -- edit the variable of interest to the desired value, for example
mysql> SET GLOBAL general_log='ON';
Это работает как шарм