当前位置:首页 > 话题广场 > 科技专区 > 互联网

如何使用代理 如何使用代理看图片

作者:杨涛涛


资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。


本文来源:原创投稿


*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


背景

某天有人问了我一个有关 MySQL PROXY 用户该如何使用的问题。

原问题是这样的:MySQL 版本从 5.5 升级到 8.0 后,proxy 用户怎么无法使用了?我之前是按照你博客上写的方法使用的,但是在升级后,安装插件提示如下错误:

mysql:(none)>install plugin test_plugin_server soname 'au;; ERROR 1126 (HY000): Can't open shared library 'au; (errno: 0 API version for AUTHENTICATION plugin is too different)

这个咋回事?

我给了一个大家都很讨厌的答案: 去看 MySQL8.0 官方手册吧。

正文

其实MySQL版本发展到8.0,已经完全没有必要使用 proxy 用户这个功能了,可以用角色完美替代。

au 是 MySQL 5.5 的插件,仅限于测试环境,不推荐线上使用,仅限功能演示。之后的一系列大版本安装包里都不包含这个插件,所以使用方法有些差异。

下面我对 proxy 用户在 MySQL 8.0 下如何使用做下简单演示。

我在下面示例中使用插件 mysql_native_password ,这个插件自带 proxy 用户功能,所以需要在配置文件里开启对应的开关,并重启 MySQL 实例:(如果使用 sha256_password , 应该把参数 sha256_password_proxy_users=ON 也加到配置文件里。)

[mysqld] check_proxy_users=ON mysql_native_password_proxy_users=ON

使用 proxy 用户功能之前,需要安装 mysql_no_login 插件,阻止隐藏在 proxy 用户下的真实用户登录 MySQL 。

mysql:(none)>install plugin mysql_no_login soname 'my;; Query OK, 0 rows affected sec)

创建一个 proxy 用户 ytt_fake ,使用认证插件 mysql_native_password :

mysql:(none)>create user ytt_fake identified with mysql_native_password by 'ytt'; Query OK, 0 rows affected sec)

创建真实用户,并且认证插件使用 mysql_no_login ,禁止此用户登录 MySQL ,并且赋予他操作数据库ytt的所有权限。

mysql:(none)>create user ytt_real identified with mysql_no_login by 'ytt'; Query OK, 0 rows affected sec) mysql:(none)>GRANT all on ytt.* to ytt_real; Query OK, 0 rows affected sec)

授权 proxy 用户。

mysql:(none)>grant proxy on ytt_real to ytt_fake; Query OK, 0 rows affected sec)

使用 Proxy 用户登录 MySQL :

root@ytt-ubuntu:~# mysql -u ytt_fake -pytt -hytt-ubuntu ... Your MySQL connection id is 10 Server version: 8.0.26 MySQL Community Server - GPL ...

确认下变量 proxy_user 的值是不是 ytt_fake :

mysql:ytt>select @@proxy_user; +----------------+ | @@proxy_user | +----------------+ | 'ytt_fake'@'%' | +----------------+ 1 row in set sec)

使用 proxy 用户登录后,查看当前登录用户信息:用户实际上是 ytt_real 。

mysql:(none)>select user(),current_user(); +---------------------+----------------+ | user() | current_user() | +---------------------+----------------+ | ytt_fake@ytt-ubuntu | ytt_real@% | +---------------------+----------------+ 1 row in set sec)

确认下权限:具有真实用户的所有权限。

mysql:(none)>show grants; +---------------------------------------------------+ | Grants for ytt_real@% | +---------------------------------------------------+ | GRANT USAGE ON *.* TO `ytt_real`@`%` | | GRANT ALL PRIVILEGES ON `ytt`.* TO `ytt_real`@`%` | +---------------------------------------------------+ 2 rows in set sec)

用 proxy 用户创建表、插入记录、查询、销毁表:

mysql:ytt>create table fake1( id int primary key); Query OK, 0 rows affected sec) mysql:ytt>insert fake1 select 1; Query OK, 1 row affected sec) Records: 1 Duplicates: 0 Warnings: 0 mysql:ytt>table fake1; +----+ | id | +----+ | 1 | +----+ 1 row in set sec) mysql:ytt>drop table fake1; Query OK, 0 rows affected sec)

由于真实用户 ytt_real 使用认证插件 mysql_no_login ,MySQL 不允许此用户登录:

root@ytt-ubuntu:~# mysql -uytt_real -pytt -h ytt-ubuntu mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'ytt_real'@'ytt-ubuntu' (using password: NO)

PROXY 用户有以下两个限制:

  1. 隐藏在 proxy 用户后面的真实用户不能是匿名用户、也不能给用户赋予一个匿名 PROXY 用户。MySQL 这种场景只通过语法检测,不实际应用。
  2. 多个用户可以共用一个 proxy 用户,但是不推荐!多个用户共用一个 proxy 用户,结果和预想有很大差异,也就是结果有不确定性特征。 比如用户 ytt_real 使用 proxy 用户 ytt_fake ,用户 ytt_real_other 也想使用 ytt_fake ,此时用户 ytt_fake 连接 MySQL 后,真实用户依然是 ytt_real ,直到用户 ytt_real 被删除,才会轮到第二个用户。

1.《如何使用代理 如何使用代理看图片》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《如何使用代理 如何使用代理看图片》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3229365.html

上一篇

(如何破解电脑开机密码)电脑开机密码怎么改

[如何使用代理服务器]如何使用代理服务器访问外网?

  • [如何使用代理服务器]如何使用代理服务器访问外网?
  • [如何使用代理服务器]如何使用代理服务器访问外网?
  • [如何使用代理服务器]如何使用代理服务器访问外网?

ss怎么局域网?我来告诉你答案内网穿透FRP+IP代理SS实现远程连接无公网的电脑并使用代理IP入网

  • ss怎么局域网?我来告诉你答案内网穿透FRP+IP代理SS实现远程连接无公网的电脑并使用代理IP入网
  • ss怎么局域网?我来告诉你答案内网穿透FRP+IP代理SS实现远程连接无公网的电脑并使用代理IP入网
  • ss怎么局域网?我来告诉你答案内网穿透FRP+IP代理SS实现远程连接无公网的电脑并使用代理IP入网
网页不加载不出来是怎么回事啊看这里!使用代理时常见的错误代码有哪些?

网页不加载不出来是怎么回事啊看这里!使用代理时常见的错误代码有哪些?

网页不加载不出来是怎么回事啊相关介绍,使用代理IP时,用户会遇到一定程度的错误代码。其中一部分是代理IP造成的,一部分是网站本身的问题。让我们来了解一下常见的错误代码。 3XX错误代码表示用户被重定向,因为用户的请求有多个响应。 例如,3...

迅雷在哪里设置代理?迅雷使用代理下载的详细教程

迅雷在哪里设置代理?迅雷使用代理下载的详细教程

win7迅雷相关介绍,软件版本:软件大小:软件许可证:适用平台:VistaWin7下载信任是很多朋友使用的下载工具之一,我们通常上班时可能需要下载一些文件,但公司使用代理服务器连接互联网,所以我们必须将信任设置为代理连接才...

使用代理服务器上网 使用代理服务器上网的步骤【图文】

代理服务器又称中转站,它能够代替互联网用户去获取网络资料,因此,有的网站在使用正常方式打不开的情况下,使用代理服务器进行访问就能够打开,那么我们如何使用代理服务器访问网络和上网呢?  获取ip  Ip地址是网络中非常重要的一个概念,它是用来区分每一台访问网络的计算机的数值组合,没有正确的ip地址就无法进行代理服务器访问网络的工作实现,因此,我们首...

无法使用代理服务器 win7系统浏览器无法连接到代理服务器的解决方法

  • 无法使用代理服务器 win7系统浏览器无法连接到代理服务器的解决方法
  • 无法使用代理服务器 win7系统浏览器无法连接到代理服务器的解决方法
  • 无法使用代理服务器 win7系统浏览器无法连接到代理服务器的解决方法