MySQL中USER()和CURRENT_USER()的区别

Ubutntu下使用realsense d435i(二):获取某二维像素点的三维坐标 00 准备工作 准备工作包括安装驱动以及pyrealsense2,具体可参考上一篇: Ubutntu下使用realsense d435i(一):准备工作以及安装pyrealsense2 https://blog.youkuaiyun.com/gyxx1998/article/details/121461293 01 通过二维像素点获得物体三维坐标 这个在上一篇已经介绍了代码: realsense d435i获取某像素点三维坐标(计算深度和点云两种方法) https://blog.youkuaiyun.com/gyxx1998/ 阅读详情
  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。
  • 作者:YeJinrong/叶金荣

意外发现USER()和CURRENT_USER()的一点不同。

某次在用 ALTER USER 想要修改账户密码时,发现执行下面的SQL会报语法错误:

mysql> ALTER USER USER() IDENTIFIED WITH ...
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'with mysql_native_password by ''' at line 1

一开始百思不得其解,如果把 USER() 手动替换成对应的账户的话,则可以正常执行:

mysql> ALTER USER test@'%' IDENTIFIED WITH ...
Query OK, 0 rows affected (0.10 sec)

如果再改成 CURRENT_USER() 也是可以执行的:

mysql> ALTER USER CURRENT_USER() IDENTIFIED WITH ...
Query OK, 0 rows affected (0.10 sec)

看来是修改密码时不能调用 USER() 函数,但可以用 CURRENT_USER() 函数,那么这两个函数的区别是什么呢?

我们来看下文档中的解释:

  • CURRENT_USER, CURRENT_USER()

Returns the user name and host name combination for
the MySQL account that the server used to authenticate
the current client. This account determines your access
privileges. The return value is a string in the utf8
character set.

  • USER()

Returns the current MySQL user name and host name as
a string in the utf8 character set.

简言之,CURRENT_USER() 返回的是当前用户所对应的授权账户,而 USER() 返回的是当前连接用户。这么说可能还有点疑惑,看下面的案例吧:

# 有一个授权账户是 yejr@'%'
mysql> SELECT HOST,USER FROM mysql.user WHERE user='yejr';
+------+------+
| host | user |
+------+------+
| %    | yejr |
+------+------+
    
# 采用tcp/ip方式连接
$ mysql -h127.0.0.1 -uyejr -pxx -P3306
...
    
# 调用 USER()
mysql> SELECT USER();
+----------------+
| USER()         |
+----------------+
| yejr@127.0.0.1 |
+----------------+
    
mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| yejr@%         |
+----------------+
    
# 换个方式连接
$ mysql -S/tmp/mysql.sock -uyejr -pxx
...
SELECT USER();
+----------------+
| USER()         |
+----------------+
| yejr@localhost |
+----------------+

这下看明白了吧,也就是说,同一个授权账户,可能会从不同主机/不同方式连接到MySQL Server端,这时 CURRENT_USER() 返回的是对应的授权账户,而 USER() 返回的就是包含该账户当前连接的客户端地址,从不同主机连接过来后得到的结果也不同。

这样就可以解释一开始的问题了,为什么不能在修改密码时调用 USER() 函数,而只能用 CURRENT_USER() 函数了。


Enjoy GreatSQL 😃

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

捉虫活动详情:https://greatsql.cn/thread-97-1-1.html

社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html

6440

论文必备 - YOLOv13热力图可视化,支持指定模型,指定显示层,设置置信度,以及10种可视化实现方式 本文带来的是YOLOv13热力图可视化功能,支持,以及。我们经常看到一些论文里绘制了不同的热力图,一方面能够直观的感受其模型的有效性,另一方面也丰富了论文内容。特别是在使用了注意力模块的网络中,热力图就可以验证注意力机制是否真正聚焦到了预期的重要特征上,以便对模型的有效性和合理性进行评估。例如这篇文章中展示的,就很能够表达作者改进后的模型相比之前模型的优越性。 阅读详情

相关推荐

CentOS 7.9安装python3.11

CentOS 7.9安装python3.11

leafseelight的专栏 1342

mysql currentuser_mysql当前用户user()与current_user()

Mysql在进行登陆时,会去匹配mysql库中的user表,并赋予相应的权限,但是怎么知道我们当时的登陆的用户名及相应的权限呢?在Mysql中,有两个函数,一个是user(),一个是current_user();我们来运行一下看一下他们有什么区别:mysql> select user();+----------------------+| user() |+---...

weixin_34545862的博客 1904

简单初识 Material Point Method(MPM)

简单初识 Material Point Method(MPM):先介绍了Lagrangian和Eulerian,并简单介绍了MPM Method

qq_45776432的博客 7367

mysql的user()、session_user()、system_user()、current_user() 查看当前用户

user()和system_user()相同user(),system_user(),session_user()一般相同。

kfepiza的博客 1863

深入解读ATPG Pattern类型:除了Basic Scan,Clock PO和RAM Sequential模式怎么用?

本文深入解析ATPG高级Pattern类型,包括Clock PO和RAM Sequential模式的应用策略。通过Mentor DFT工具链中的Tessent平台,详细介绍了这些模式的工作原理、配置命令及实战案例,帮助提升芯片测试的故障覆盖率和效率。特别适用于处理时钟域交叉和嵌入式存储器的复杂电路测试需求。

weixin_27697385的博客 486

MNI152 坐标空间和 fsaverage 坐标空间相互转换, 如已知fsaverage空间的坐标如何求MNI152 坐标?aparc.a2009s.annot转化到MNI152空间?

大多数神经影像学研究的结果是在体积(例如,MNI152)或表面(例如,fsaverage)坐标系中报告的。体积坐标系和表面坐标系之间的准确映射可以促进许多应用,例如将 fMRI 组分析从 MNI152 投影到 fsaverage 以进行可视化或从 fsaverage 投影静息状态 fMRI 分区对 MNI152进行新数据的体积分析。Wu et al., 2018 评估了三种在 MNI152通过模拟上述应用的 Colin27 和 fsaverage 坐标系:将组平均数据从 MNI152/Colin27 投影到

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 2966

mysql系统函数user()与current_user()的区别

Mysql在进行登陆时,会去匹配mysql库中的user表,并赋予相应的权限,但是怎么知道我们当时的登陆的用户名及相应的权限呢? 在Mysql中,有两个函数,一个是user(),一个是current_user(); 我们来运行一下看一下他们有什么区别: mysql> select user(); +----------------------+ | user() | +----------------------+ | test@192.168.203.132 | +---

weixin_50464560的博客 3647

【图像增强】论文精读:Correlation Matching Transformation Transformers for UHD Image Restoration(UHDformer)

论文题目:Correlation Matching Transformation Transformers for UHD Image Restoration —— 用于UHD图像恢复的相关匹配变换变压器AAAI 2024!本文提出了一种用于超高清(UHD)图像恢复的通用变压器UHDformer。UHDformer包含两个学习空间:(a) 高分辨率空间中的学习,(b)低分辨率空间中的学习。前者学习多层次的高分辨率特征,融合低层特征,重建残差图像,后者从高分辨率特征中学习更多的代表性特征,以促进更好的恢复。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 291

mysql数据库中user表字段详解

MySQL的user表是MySQL服务器的内置表,它用于存储MySQL服务器上的用户信息,包括用户名、密码、主机名和权限等。它用于控制MySQL服务器上的访问权限,以确保服务器的安全性。

黑牛儿的博客 7931

2024 全国大学生新质生产力大赛 B:金融违规交易的大数据分析 问题四思路代码

问题四:请分析附件中所有的指标数据,选取合适的指标,建立“金融违规 洗钱交易的预测模型”,并选取合适的训练集和测试集,计算预测模型的准确率。 为了提前识别并预测金融违规洗钱的交易事件,请基于你们团队数据分析的结果, 分别给公安部门和银行机构提出你们的建议。

YOLO 375

GEE APP:基于GEE的红树林监测平台

本文将介绍如何利用Google Earth Engine平台,结合Landsat系列卫星影像和SRTM高程数据,实现红树林分布的动态监测与变化分析。

此星光明博客 160

mysql用户函数_mysql用户函数区别

只能说我菜,在网上找了下没发现谁解释过他们四个的区别,那就只能自己来了。下面是通过mysql客户端查看到的帮助信息,直接贴解释吧。 user:Returns the current MySQL username and hostname as a string in the utf8 character set. system_user:SYSTEM_只能说我菜,在网上找了下没发现谁解释过他们四个...

weixin_39799561的博客 168

Oracle11g下载与安装(windows)

一、Oracle11g下载 二、安装准备 三、执行安装步骤 四、测试连接 附:Oracle11g服务说明

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 2万+

mysql 用户函数_mysql用户函数有哪些

mysql提供了很多内部函数,其中查看用户的函数有四个,分别是:user()、system_user()、session_user()、current_user(),感觉他们返回的值一直都是一样,他们有没有区别,如果有是什么区别了?User() 这个函数, 是取得 当前登陆的用户.相当于问 MySQL 我是谁 的意思。mysql> SELECT USER();+-------------...

weixin_42129797的博客 861

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

mysql currentuser_mysql 查看当前登陆用户匹配原则及权限user()与current_user()

Mysql在进行登陆时,会去匹配mysql库中的user表,并赋予相应的权限,但是怎么知道我们当时的登陆的用户名及相应的权限呢?在Mysql中,有两个函数,一个是user(),一个是current_user();我们来运行一下看一下他们有什么区别:user()是用来显示当前登陆的用户名与它对应的host,帮助文档是这样描述的:Returns the current MySQL user name ...

weixin_35009071的博客 409

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mysql 用户函数_mysql用户函数区别

只能说我菜,在网上找了下没发现谁解释过他们四个的区别,那就只能自己来了。下面是通过mysql客户端查看到的帮助信息,直接贴解释吧。 user:Returns the current MySQL username and hostname as a string in the utf8 character set. system_user:SYSTEM_只能说我菜,在网上找了下没发现谁解释过他们四个...

weixin_39658619的博客 89

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

How to List All Users in a MySQL Database

【代码】How to List All Users in a MySQL Database。

allway2的博客 42

<span class=“js_title_inner“>MySQL连接揭秘:localhost、127.0.0.1、IP与::1,你真的用对了吗?</span>

理解localhost与127.0.0.1的差异,不仅能帮你快速排查“Access denied”错误,还能在性能优化和安全加固上迈出关键一步。即使用户名相同,'root'@'localhost' 和 'root'@'127.0.0.1' 是两个不同的账户!权限需以 'user'@'127.0.0.1' 或 'user'@'%' 授权。权限需匹配 'user'@'192.168.1.%' 或 'user'@'%'权限系统中,用户需以 'user'@'localhost' 形式授权。

gjc592的博客 596

MySQL连接揭秘:localhost、127.0.0.1、IP与::1,你真的用对了吗?

理解localhost与127.0.0.1的差异,不仅能帮你快速排查“Access denied”错误,还能在性能优化和安全加固上迈出关键一步。即使用户名相同,'root'@'localhost' 和 'root'@'127.0.0.1' 是两个不同的账户!权限需以 'user'@'127.0.0.1' 或 'user'@'%' 授权。权限需匹配 'user'@'192.168.1.%' 或 'user'@'%'权限系统中,用户需以 'user'@'localhost' 形式授权。

gjc592的博客 554

mysql database 函数_MySQL中DATABASE()和CURRENT_USER()函数的示例详解

本篇文章我们给大家介绍MySQL中DATAbase()和CURRENT_USER()函数的区别,希望对需要的朋友有所帮助!DATAbase()函数MySQL中的DATAbase()函数返回默认或当前数据库的名称。DATAbase()函数返回的字符串或名称使用utf8字符集。如果没有默认数据库,则Database函数返回NULL。在比MySQL 4.1.1更旧的版本中,如果没有默认数...

weixin_42223120的博客 3664

mysql当前用户user()与current_user()

Mysql在进行登陆时,会去匹配mysql库中的user表,并赋予相应的权限,但是怎么知道我们当时的登陆的用户名及相应的权限呢? 在Mysql中,有两个函数,一个是user(),一个是current_user(); 我们来运行一下看一下他们有什么区别: mysql> select user(); +----------------------+ | user() ...

weixin_30535913的博客 469

mysql user database_MySQL中DATABASE()和CURRENT_USER()函数的示例详解

本篇文章我们给大家介绍MySQL中DATABASE()和CURRENT_USER()函数的区别,希望对需要的朋友有所帮助!DATABASE()函数MySQL中的DATABASE()函数返回默认或当前数据库的名称。DATABASE()函数返回的字符串或名称使用utf8字符集。如果没有默认数据库,则Database函数返回NULL。在比MySQL 4.1.1更旧的版本中,如果没有默认数据库,则数据库函...

weixin_42237925的博客 722

mysql 查看当前登陆用户匹配原则及权限user()与current_user()

Mysql在进行登陆时,会去匹配mysql库中的user表,并赋予相应的权限,但是怎么知道我们当时的登陆的用户名及相应的权限呢? 在Mysql中,有两个函数,一个是user(),一个是current_user();    我们来运行一下看一下他们有什么区别: mysql> select user(); +----------------------+ | user()

adsadadaddadasda的博客 2279

mysql currentuser_MySQL中DATABASE()和CURRENT_USER()函数的示例详解

本篇文章我们给大家介绍MySQL中DATABASE()和CURRENT_USER()函数的区别,希望对需要的朋友有所帮助!DATABASE()函数MySQL中的DATABASE()函数返回默认或当前数据库的名称。DATABASE()函数返回的字符串或名称使用utf8字符集。如果没有默认数据库,则Database函数返回NULL。在比MySQL 4.1.1更旧的版本中,如果没有默认数据库,则数据库函...

weixin_42512012的博客 479
上一篇: 浅谈 MySQL 新的身份验证插件 caching_sha2_password
下一篇: MySQL 8.0.30动态redo log初探
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值