返回顶部
关闭软件导航
位置:首页 > 资讯 > 其他>MySQL 8.0.4 RC使用 auth_socket用户要小心

  早在2015年11月,就有报告使用sha256_password进行auth_socket身份验证失败。这防止在SHA256认证之后用auth_socket插件识别的用户进行缺省认证方法mysql文章入库软件。在MySQL 8.0.4 RC中,default_authentication_plugin被更改为caching_sha2_password,不知道他们是否解决了这个bug。

  测试的源代码是从dev.mysql.com下载的,并使用发布选项进行编译。 一些选项被禁用,以减少构建时间,以及设置路径前缀,并确保使用本地的OpenSSL库::

  version="$(basename $(pwd))";

  prefix="/home/ceri/opt/mysql/${version}";

  cmake . -DBUILD_CONFIG=mysql_release \

mysql文章入库软件

  -DCMAKE_INSTALL_PREFIX:PATH="${prefix}" \

  -DMYSQL_DATADIR:PATH="${prefix}/data" \

  -DWITH_SSL:STRING=system \

  -DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=OFF \

  -DWITH_EMBEDDED_SERVER:BOOL=OFF \

  -DWITH_EXTRA_CHARSETS:STRING="" \

  -DWITH_FEDERATED_STORAGE_ENGINE:BOOL=OFF \

  -DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=OFF \

  -DWITH_BOOST="./$(find boost/ -maxdepth 1 -type d -not -name boost)"

  在完成构建和构建测试之后,MySQL Sandbox用来创建一个测试实例,使用low_level_make_sandbox命令来获得一些额外的控制。之后,有必要恢复default_authentication_pluginmysql文件入库工具,因为它在安装过程中更改为mysql_native_password:

  $ low_level_make_sandbox -d mysql-8.0.4-rc --datadir_from=script \

  -b ~/opt/mysql/mysql-8.0.4-rc -i 8.0 -P 20804

  $ sed -Ei 's/^(default_authentication_plugin=mysql_native_password)/#\1/' my.sandbox.cnf

  在启动实例之后,我创建了快速测试用例。这将安装auth_socket插件并创建一个用户来使用它来标识自己:

  mysql [localhost] {root} ((none)) > show global variables like 'default_authentication_plugin';

  +-------------------------------+-----------------------+

  | Variable_name                | Value                |

  +-------------------------------+-----------------------+

  | default_authentication_plugin | caching_sha2_password |

  +-------------------------------+-----------------------+

  1 row in set (0.00 sec)

  mysql [localhost] {root} ((none)) > install plugin auth_socket soname 'auth_socket.so';

  Query OK, 0 rows affected (0.02 sec)

  mysql [localhost] {root} ((none)) > create user ceri@localhost identified with auth_socket;

  Query OK, 0 rows affected (0.04 sec)

  mysql [localhost] {root} ((none)) > grant all on *.* to ceri@localhost;

  Query OK, 0 rows affected (0.03 sec)

  不幸的是,当我试图通过这个新用户连接时,一个熟悉的结果——尽管有趣的是,一个新的错误消息!

  $ ./use -uceri

  ERROR 2000 (HY000): Unknown MySQL error

  通过使用5.7客户机(一个握手错误),我们可以看到预期的错误消息:

  $ ~/opt/mysql/mysql_5.7.20/bin/mysql --defaults-file=./my.sandbox.cnf -uceri

  ERROR 2012 (HY000): Error in server handshake

  虽然在MySQL 8.0.4 RC中有许多重大的改进和新特性,但是使用auth_socket插件的任何系统都需要确保它们强制使用default_authentication_plugin=mysql_native_password——至少现在是这样mysql文章入库软件 。

如果您觉得 MySQL 8.0.4 RC使用 auth_socket用户要小心 这篇文章对您有用,请分享给您的好友,谢谢
文章地址:https://www.tianxianmao.com/article/other/MySQLRCsyauth_socketyhyxx.html
解放双手无尽可能,有问题添加天线猫微信