MySQL 如何为mysql数据库添加超级权限?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11946012/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 14:29:52  来源:igfitidea点击:

how to add super privileges to mysql database?

mysql

提问by Manish Malviya

I am trying to execute query in mysql.

我正在尝试在 mysql 中执行查询。

SET GLOBAL log_bin_trust_function_creators =1; 

Error:

SQL query:
SET GLOBAL log_bin_trust_function_creators =1
MySQL said:
#1227 - Access denied; you need the SUPER privilege for this operation

错误:

SQL 查询:
SET GLOBAL log_bin_trust_function_creators =1
MySQL 说:
#1227 - 拒绝访问;您需要此操作的 SUPER 权限

I want to know that how do i assign SUPERprivileges to any database

我想知道如何SUPER为任何数据库分配权限

回答by Akash KC

You can add super privilege using phpmyadmin:

您可以使用phpmyadmin以下方法添加超级权限:

Go to PHPMYADMIN > privileges > Edit User > Under Administrator tab Click SUPER. > Go

转到 PHPMYADMIN > 权限 > 编辑用户 > 在管理员选项卡下单击超级。> 去

If you want to do it through Console, do like this:

如果你想通过Console,这样做:

 mysql> GRANT SUPER ON *.* TO user@'localhost' IDENTIFIED BY 'password';

After executing above code, end it with:

执行上述代码后,以:

mysql> FLUSH PRIVILEGES;

You should do in on *.*because SUPER is not the privilege that applies just to one database, it's global.

您应该坚持下去,*.*因为 SUPER 不是仅适用于一个数据库的特权,它是全局的。

回答by Ruwantha

You can see the privileges here.enter image description here

您可以在此处查看权限。在此处输入图片说明

Then you can edit the user

然后你可以编辑用户

回答by Gustavo A Garcia

In Sequel Pro, access the User Accounts window. Note that any MySQL administration program could be substituted in place of Sequel Pro.

在 Sequel Pro 中,访问“用户帐户”窗口。请注意,任何 MySQL 管理程序都可以代替 Sequel Pro。

Add the following accounts and privileges:

添加以下帐户和权限:

GRANT SUPER ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD

GRANT SUPER ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD

回答by Sandeep

On Centos 5 I was getting all sorts of errors trying to make changes to some variable values from the MySQL shell, after having logged in with the proper uid and pw (with root access). The error that I was getting was something like this:

在 Centos 5 上,在使用正确的 uid 和 pw(具有 root 访问权限)登录后,我尝试从 MySQL shell 更改某些变量值时遇到各种错误。我得到的错误是这样的:

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

In a moment of extreme serendipity I did the following:

在一个非常偶然的时刻,我做了以下事情:

OS-Shell> sudo mysql                          # no DB uid, no DB pw

Kindly note that I did not provide the DB uid and password

请注意,我没有提供数据库 uid 和密码

mysql> show variables;
mysql> -- edit the variable of interest to the desired value, for example
mysql> SET GLOBAL general_log='ON';

It worked like a charm

它就像一个魅力

回答by dos007

just the query phpmyadmin prints after granting super user. hope help someone with console:

授予超级用户后仅打印查询 phpmyadmin。希望能帮助有控制台的人:

ON $.$ TO-> $=* doesnt show when you put two with a dot between them.

ON $.$ TO-> $=* 当你把两个中间加一个点时不显示。

REVOKE ALL PRIVILEGES ON .FROM 'usr'@'localhost'; GRANT ALL PRIVILEGES ON .TO 'usr'@'localhost' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

撤销所有权限FROM 'usr'@'localhost'; 授予所有特权TO 'usr'@'localhost' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

and the reverse one, removing grant:

和相反的,删除授权:

REVOKE ALL PRIVILEGES ON .FROM 'dos007'@'localhost'; REVOKE GRANT OPTION ON .FROM 'dos007'@'localhost'; GRANT ALL PRIVILEGES ON .TO 'dos007'@'localhost' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

撤销所有权限FROM 'dos007'@'localhost'; 撤销授予选项FROM 'dos007'@'localhost'; 授予所有特权TO 'dos007'@'localhost' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

checked on vagrant should be working in any mysql

在 vagrant 上检查应该在任何 mysql 中工作