Jus*_*tin 6 mysql permissions ssl
如何遍历 MySQL 数据库中的所有用户(我们有 > 3000 个),并将REQUIRE SSL
标志添加到每个帐户?我不想修改现有用户的权限、主机或密码,只需添加REQUIRE SSL
您可以为GRANT
每个现有用户提供特殊的无特权USAGE
特权,这不会改变他们现有的特权,但可用于REQUIRE SSL
现有用户。
USAGE
可以指定创建一个没有权限的用户,或者在不更改其现有权限的情况下为帐户指定REQUIRE
orWITH
子句。
mysql> SHOW GRANTS;
+---------------------------------------------------------------------------------------------+
| Grants for sqlbot@% |
+---------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'sqlbot'@'%' IDENTIFIED BY PASSWORD '*XXX' WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> GRANT USAGE ON *.* TO 'sqlbot'@'%' REQUIRE SSL;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS;
+---------------------------------------------------------------------------------------------------------+
| Grants for sqlbot@% |
+---------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'sqlbot'@'%' IDENTIFIED BY PASSWORD '*XXX' REQUIRE SSL WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
上述方法添加了 SSL 限制,而不会以其他方式更改我的权限。
或者,您应该能够操作mysql
. user
表直接与查询。这里唯一的警告:在SUPER
您知道 SSL 正常工作之前不要将其添加到您自己的帐户中,并记住FLUSH PRIVILEGES;
在手动修改授权表后。如果没有最后一步,服务器将不会注意到更改,直到下一次重新启动,因为授权表被缓存,否则只有服务器所做的更改GRANT
或REVOKE
由服务器注意到。
此查询应强制所有用户使用 SSL。您可能希望根据正确配置的用户在您的user
表中的样子对其进行修改以满足您的要求,或者仅对一个用户而不是整个用户群进行尝试,以确认您获得的行为是您的行为预计。
mysql> UPDATE mysql.user SET ssl_type = 'any' WHERE ssl_type = '';
mysql> FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
我没有理由认为这应该是有问题的,但请在生产中谨慎使用此建议。
归档时间: |
|
查看次数: |
10089 次 |
最近记录: |