如何在 MySQL 中禁用客户端访问控制

我们可以通过告诉服务器不要读取授权表并禁用访问控制来禁用 MySQL 中的客户端访问控制。
使用 -skip-grant-tables 选项来执行此操作。
-skip-grant-tables 选项具有以下效果:

  • 连接后,用户拥有执行任何操作的完全权限。
  • 此选项禁用帐户管理语句,例如 CREATE USER、GRANT、REVOKE 和 SET PASSWORD。

如果我们忘记了 root 密码并需要重置它,那么禁用访问控制会很方便,因为任何用户都可以在不提供密码的情况下以完全权限进行连接。
这显然是危险的。
要防止远程客户端通过 TCP/IP 进行连接,请使用 -skipnetworking 选项。
然后,客户端只能使用 UNIX 上的套接字文件或者 Windows 上的命名管道或者共享内存从本地主机进行连接。
为避免来自本地主机的临时连接,请在命令提示符下使用非标准套接字名称。

帐户管理语句需要授权表的内存副本,当我们禁用访问控制时,这些副本不可用。
要更改权限或者设置密码,请直接修改授权表。
或者,在连接到服务器后发出 FLUSH PRIVILEGES 语句,这会导致服务器读取表并启用帐户管理语句。

www. On IT Road .com

总结

当我们在 MySQL 中禁用客户端访问控制时,

  1. 每次连接都成功:
  • 我们可以提供任何用户名和任何密码,并且可以从任何主机进行连接。
  • 该选项完全禁用特权系统。
  • 连接的用户实际上拥有所有权限。
  1. 阻止客户端连接:
  • 使用 -skip-networking 选项来阻止网络访问并只允许访问本地套接字、命名管道或者共享内存。
  • 使用 -socket 选项在非标准套接字上启动服务器,以防止本地应用程序或者用户随意访问。
日期:2020-09-17 00:10:49 来源:oir作者:oir