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

Axe*_*ner 10 mysql permissions mysql-5.5 ssl

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

mysql -u"${targetMySqlUser}" -p"${targetMySqlPass}" -e "GRANT USAGE ON dbname.* TO 'dbusername'@'%' REQUIRE SSL;"
Run Code Online (Sandbox Code Playgroud)

但是我无法使用撤销从用户那里删除或撤销此标志。我想我正在与语法作斗争。是否有适当的方法使用“撤销”命令将其删除,而不撤销整个权限?

MySQL 5.5 手册、这个站点和互联网并没有帮助我找到合适的反方式。

此 SQL 语句将起作用。

UPDATE mysql.user SET ssl_type = '' WHERE ssl_type = 'any' ; FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

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

Rol*_*DBA 10

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

不幸的是,MySQL 5.6ALTER USER 命令是有限的。你能做的就是

ALTER USER user@host PASSWORD EXPIRE;
Run Code Online (Sandbox Code Playgroud)

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

ALTER USER user@host REQUIRE NONE;
Run Code Online (Sandbox Code Playgroud)

当谈到 MySQL 5.5 时,你做了最方便的方法。伟大的 !!!

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

DROP USER user@host;
CREATE USER user@host;
GRANT ... on ... TO user@host IDENTIFIED BY '...';
Run Code Online (Sandbox Code Playgroud)

否则,我赞扬你做了需要做的事情。


小智 8

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

GRANT USAGE ON dbname.* TO 'dbusername'@'%' REQUIRE NONE;
Run Code Online (Sandbox Code Playgroud)

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

SHOW GRANTS FOR 'dbusername'@'%' ;

在 MySQL 5.6 上工作