如何正确地从单个用户中删除“ REQUIRE SSL”?


8

通过执行以下操作,我成功地将REQUIRE SSL授予了单个用户:

mysql -u"${targetMySqlUser}" -p"${targetMySqlPass}" -e "GRANT USAGE ON dbname.* TO 'dbusername'@'%' REQUIRE SSL;"

但无法使用撤消功能从用户删除或撤消此标志。我想即时通讯与语法。是否有使用“ revoke”命令将其删除而又不撤消整个权限的正确方法?

MySQL 5.5手册,该站点和互连网并没有帮助我找到适当的对策。

该SQL语句将起作用。

UPDATE mysql.user SET ssl_type = '' WHERE ssl_type = 'any' ; FLUSH PRIVILEGES;

但是我相信GRANT REQUIRE SSL我必须在哪里REVOKE REQUIRE SSL,不是吗?

Answers:


7

您要查找的内容在MySQL 5.5中不存在

不幸的是,MySQL 5.6ALTER USER命令受到限制。您所能做的就是

ALTER USER user@host PASSWORD EXPIRE;

在MySQL 5.7中,您可以按以下方式运行ALTER USER命令

ALTER USER user@host REQUIRE NONE;

对于MySQL 5.5,您采取了最方便的方法。太好了!

政治上更正确的方法是执行以下操作:

DROP USER user@host;
CREATE USER user@host;
GRANT ... on ... TO user@host IDENTIFIED BY '...';

否则,我赞扬您所做的需要。


各种MySQL版本的好答案。对于MySQL 5.6,@ Abey的解决方案不需要删除和重新创建用户。
mxxk

6

当我想删除REQUIRE SSL我强制执行的MySQL用户时,这是google的结果之一。我所做的就是做 REQUIRE NONEUSAGE

GRANT USAGE ON dbname.* TO 'dbusername'@'%' REQUIRE NONE;

通过运行验证设置是否已更改

SHOW GRANTS FOR 'dbusername'@'%' ;

在MySQL 5.6上工作


在MySQL 5.6上像魅力一样工作。优雅而简单:)
mxxk

您正在使用哪个版本的MySQL?我正在使用Mysql verison 5.7.22。SHOW补助没有提到SSL - stackoverflow.com/questions/56203365/...
committedandroider
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.