首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
社区首页 >问答
筛选
回答情况:
全部无回答回答未采纳
提问时间:
不限一周内一月内三月内一年内
回答标签:
访问管理

关于登录时到底是被 MySQL 识别为哪个账号的问题?

晓小峰哦
简要分析 MySQL 在创建用户的时候,一般是需要指定用户名和来源 IP 的,比如: mysql> show grants for test@'%'; +----------------------------------+ | Grants for test@% | +----------------------------------+ | GRANT USAGE ON *.* TO 'test'@'%' | +----------------------------------+ 1 row in set (0.00 sec) 由于 Host 这个字段支持正则匹配,因此这个字段设置为 % 的时候,则代表所有的来源 IP 都能匹配到。 因为这个特性,所以有时候创建的账号会有如下的情况出现: +------+---------------+ | user | host | +------+---------------+ | test | % | | test | 10.104.% | | test | 10.104.56.136 | +------+---------------+ 参考官方文档的描述: When multiple matches are possible, the server must determine which of them to use. It resolves this issue as follows: 1.Whenever the server reads the user table into memory, it sorts the rows. 2.When a client attempts to connect, the server looks through the rows in sorted order. 3.The server uses the first row that matches the client host name and user name. The server uses sorting rules that order rows with the most-specific Host values first. 简而言之:MySQL 会按照 Host 的匹配精度,按降序排列同一个 Username 的所有账号,当 Client 端尝试登录 MySQL 的时候,会按照顺序依次这个 Username 下面所有的 Host 规则,直到匹配成功。 Host 这个字段不仅能填 IP,也能写域名,同样也能利用到正则表达式匹配: 📷 匹配示例 由于域名指向的 IP 受 DNS 的影响,因此多数时候会用 IP,一般来说需要 DNS 来屏蔽一些后端细节的时候才会用域名来作为 Host 字段的值。 测试一下 使用如下操作创建三个用户,密码不做区分: mysql> create user test@'%' identified by 'test'; Query OK, 0 rows affected (0.00 sec) mysql> create user test@'10.104.56.136' identified by 'test'; Query OK, 0 rows affected (0.00 sec) mysql> create user test@'10.104.%' identified by 'test'; Query OK, 0 rows affected (0.01 sec) mysql> mysql> mysql> mysql> select user,host from mysql.user where user='test' order by host desc; +------+---------------+ | user | host | +------+---------------+ | test | 10.104.56.136 | | test | 10.104.% | | test | % | +------+---------------+ 3 rows in set (0.00 sec) mysql> PS:order by desc 仅为展示上的考虑。 那么从两个不同的机器上(10.104.56.136 和 10.104.43.107)尝试登录 MySQL,按照文档的描述,匹配的优先级应该是:10.104.56.136->10.104.%->%。那么有一台服务器能完整匹配到 IP,另外一台服务器匹配到的应该是10.104.%。 实际操作一下看看效果: root@debian:~# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.104.56.136 ......(省略) root@debian:~# mysql -h192.168.1.100 -utest -ptest ......(省略) Server version: 5.7.18-txsql-log 20200331 ......(省略) mysql> show grants; +----------------------------------------------+ | Grants for test@10.104.56.136 | +----------------------------------------------+ | GRANT USAGE ON *.* TO 'test'@'10.104.56.136' | +----------------------------------------------+ 1 row in set (0.00 sec) mysql> 在另外一台机器上: root@VM-43-107-debian:~# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.104.43.107 ......(省略) root@debian:~# mysql -h192.168.1.100 -utest -ptest ......(省略) Server version: 5.7.18-txsql-log 20200331 ......(省略) mysql> show grants; +-----------------------------------------+ | Grants for test@10.104.% | +-----------------------------------------+ | GRANT USAGE ON *.* TO 'test'@'10.104.%' | +-----------------------------------------+ 1 row in set (0.00 sec) mysql> 换成本地的设备再试一下登录: Tomo@MacBook-Pro ~ % mysql -hgz-cdb.sql.tencentcdb.com -utest -ptest -P59888 ......(省略) Server version: 5.7.18-txsql-log 20200331 ......(省略) mysql> show grants; +----------------------------------+ | Grants for test@% | +----------------------------------+ | GRANT USAGE ON *.* TO 'test'@'%' | +----------------------------------+ 1 row in set (0.02 sec) mysql> 可以看到本地设备的 IP 由于和前两个匹配规则不一致,所以最后匹配到了 % 的这个账号。 总结一下 作为比较保险的办法,尽量少用 Host 来区分不同的账号,直接用不同的 Username 会比较好管理和维护,如果一定需要用 Host 来区分,那么至少也要用不同的密码,防止匹配到了错误的用户,导致权限不足引起业务上的问题。 课外题 localhost 和 127.0.0.1 算是常用的两个 Host,可以作为实践内容动手试一下,体验一下匹配的规律。在 MySQL 看来,精确的域名和精确的 IP 是同等地位的。
1人回答了此问题

乐固加固失败?

成为首答用户吧

急!!页面访问无法查询超过一个月的数据,哪里能查询到?

冰书
页面访问无法查询超过一个月的数据可能是由于多种原因导致的,以下是一些建议和可能的解决方案: 1. 检查服务器配置:检查服务器的日志设置,确保日志记录设置为存储超过一个月的数据。如果服务器使用的是Linux系统,可以检查`/etc/logrotate.d/`目录下的配置文件,确保日志轮转设置正确。 2. 检查数据库设置:检查数据库的查询限制设置,确保没有设置查询时间范围限制。如果是MySQL数据库,可以检查`my.cnf`或`my.ini`文件中的`expire_logs_days`设置。 3. 检查应用程序设置:检查应用程序的配置文件或代码,确保没有设置查询时间范围限制。如果有缓存机制,请确保缓存数据的有效期设置得足够长。 4. 检查网络设置:确保网络连接正常,没有被防火墙或其他安全策略阻止。 5. 查阅官方文档:查阅服务器、数据库和应用程序的官方文档,了解是否有已知的限制或问题。 6. 联系技术支持:如果以上方法都无法解决问题,请联系服务器、数据库或应用程序的技术支持团队,寻求专业帮助。 希望这些建议能帮助你解决问题。
1人回答了此问题

境外访问腾讯云部署的网站报错,如何解决?

腾讯云开发者社区
您好,感谢您对腾讯云的关注和使用,请问您使用的是什么网络产品呢,辛苦提供一下产品实例ID,能更好定位到具体问题呢~
1人回答了此问题

云服务器无法访问亚马逊后台,求大神指点?

TCS-F
应该是亚马逊IP受限,被封堵,建议更新换EIP,通过常用纯净IP去正常访问;例如跨境浏览器稳定IP去访问; 以下是更换新EIP方式:https://cloud.tencent.com/document/product/213/16
1人回答了此问题

云开发 匿名登陆 auth.signInAnonymously is not a function?

编辑2023-03-09166
用户7497884
https://cloud.tencent.com/document/product/876/41729
1人回答了此问题

求教Google Analytics埋点参数分析问题?

编辑2023-03-02212
槿泽
可以将事件日志导入到 Elasticsearch 中,并在 Kibana 的界面中设置相应的查询条件,以查找特定参数的取值。
1人回答了此问题

2022年谷歌账号登陆提示此电话号码无法用于验证怎么办?谷歌账号异常活动验证手机号无法通过验证?

用户6854995回答已采纳
很多朋友使用谷歌账号之后一段时间(一般是注册成功后的一两天内),发现会无故被谷歌强退出来,再次登陆就会提示谷歌账号登陆异常活动验证,需要你输入手机号再次验证,而且屡次显示此手机号无法用于验证。 这个时候多次尝试后面就会显示此号码已多次用于验证。换其他手机号也是显示同样的情况。 图片 之前在知乎上看到一位老哥的方法,就用QQ邮箱注册了一个谷歌账号。 刚注册完没几分钟就出现了这种异常活动的情况。需要验证号码,输入自己谷歌号绑定的号码也提示无法验证,根据提示,明明是按照说明选择号地区,输入了号码了呀。就是显示此手机号无法用于验证,输多了几次,中途又换了没有注册过谷歌的号码试了下,都不行。 这种情况就是滥用的共用网络环境影响的,一般是在QQ邮箱或网易邮箱注册出来的谷歌账号,80%以上的概率会出现异常验证。 谷歌需要进行重新验证的原因,在谷歌账号帮助社区里面已经说明的很清楚了: 图片 图片 这种情况请注意,不要重复尝试,不要重复输入手机号验证,不要再重复尝试验证!!!重要的事情强调三遍。 重复尝试会导致谷歌账号被彻底锁死,再也无法恢复回来。 有些朋友因为重复尝试多次而被彻底锁死了,尤其是刚玩游戏不久,充了装备,或者充了礼品卡的,无法恢复回来,真的特亏。 用QQ邮箱注册出来的谷歌账号,非常不稳定,注册一个封一个,你弄完还得花费一个手机号又去注册了个号,结果又出现了这个问题。 可能你会想,一定要用上谷歌啊,游戏都已经下载好了,结果没账号,那该有多不甘心,但是这一次学聪明了,不能尝试次数多,万一又被锁了怎么办? 老一辈的前辈告诉我不要再重复尝试了,自己是解不开的。最后又耗了两三个小时,找人技术恢复好了,还好弄好了,不然折腾了再折腾,时间也是成本。 恢复好之后,在“管理您的google账户”--安全性中,看都谷歌账号被停用了。好吧。幸好恢复了,终于不用再去浪费时间去搞定这个问题了。 图片 图片 我以前也帮恢复了不少次,后面有很长一段时间谷歌大批封禁异常验证的谷歌号,很多都无法恢复。 但是,最近发现谷歌又重新开放了恢复审核,有遇到谷歌账号异常验证的朋友,不要重复尝试,否则锁死就无法恢复回来了。尤其是已经绑定了自己手机号的谷歌账号,恢复不回来,手机号又不能继续注册了。(一个手机号只能注册一个谷歌Gmail) 图片 图片 大家千万不要重复尝试验证,如果重复太多次就会跟我上面一样会被彻底锁死无法恢复了,到时候后悔都来不及,尤其是自己的谷歌账号里面有重要东西比如游戏余额、重要邮件、收藏的书签数据等如果被拉黑就恢复不回来了,这很重要。没成功的可以参考大神博客:guge.mysxl.cn 图片
2人回答了此问题

关于代金券的使用,主账号,是否支持将代金券以不同的额度分配给该主账号下面的子账号使用?

编辑2022-09-2695
eagleyao
关于这个问题可以提交 cloud.tencent.com/voc 具体情况已官网答复为主
1人回答了此问题

如何把casaos安装到外置硬盘?

用户9357862
curl -fsSL https://get.icewhale.io/casaos.sh | bash -s -- --target /path/to/external/drive 请将 /path/to/external/drive 替换为您实际的外部硬盘路径。
2人回答了此问题

请问如何申请删除腾讯云开发者社区转载的企鹅号文章,我是文章出处的企鹅号管理者?

用户10301736
你好,如何转载企鹅号文章啊?
1人回答了此问题

关于腾讯游戏人脸绑定的一些问题?

编辑2022-06-17259
卖女孩的火柴
可以
1人回答了此问题

您好,我想问一下,如果想按某几个用户组的人数显示总人数改怎么改代码呢?

编辑2022-05-27124
TDP-苏苏
写一个函数,执行数据库查询,排除groupid 为7的和禁止访问的用户组,用到的sql语句大致如下: select count(*) as member_num from `members` where `groupid ` != 7 and `groupid ` !='禁止访问的用户组id'; 如果禁止访问用户没有单独的groupid,就用排除含有禁言标记的,如 select count(*) as member_num from `members` where `groupid ` != 7 and `forbid ` !=1;
1人回答了此问题

两台轻量服务器不能内网互联吗?

鹰瑶
不支持跨账号,如果有需求建议购买CVM
1人回答了此问题

2022谷歌账号申请注册显示此号码无法用于验证用途,谷歌Gmail怎么注册才能通过手机号验证呢?

成为首答用户吧

cps推广规则不合理?

编辑2022-05-1164
用户8698275
找客服
1人回答了此问题

手机号已经注销,微信已经更改了手机号,但是腾讯云会议无法修改怎么办?

编辑2022-04-171.1K
小晟
按照您所描述,建议您先通过微信登录腾讯会议,然后在腾讯会议的设置里面解绑掉原腾讯会议账户所绑定的第三方登录账号(微信),然后退出登录登录新腾讯会议账户进行绑定微信即可
3人回答了此问题

腾讯云系统判定账号异常?

编辑2022-04-19252
洛眰恦
这边建议您提交工单或者联系在线帮忙拍查一下呢
1人回答了此问题

能否实现通过微信小程序让用户忘记指定wifi密码/账号?

编辑2022-04-18409
西门呀在吹雪
扫码,生成*****密码,用户复制,点击引导到wifi页面,输入密码粘贴上网,但是没法不记住密码
1人回答了此问题

自建应用使用OAuth授权提示”该应用仅允许企业所属的企业内成员使用“?

编辑2022-04-14301
用户8777543
如何才能让自建第三方应用OAuth授权 支持企业外部成员授权
2人回答了此问题
Hi~
今天想聊点什么呢?
近期活跃用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档