技术分享 | 何时需要手动刷新授权表

保姆级教程:用Python+OpenCV搞定Orbbec Gemini深度与彩色流对齐(附完整代码) 本文提供了一份详细的Orbbec Gemini深度与彩色流对齐教程,涵盖从环境配置到完整代码实现的每一步。通过解析深度流对齐原理,对比不同对齐模式,并提供工业级应用中的问题排查方法,帮助开发者快速掌握Orbbec Gemini相机的使用技巧。文章还包含进阶应用如点云生成与三维重建的实战代码。 阅读详情

作者:杨涛涛

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

本文来源:原创投稿

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


本篇来源于客户咨询的问题。

问题概要为:记忆中在 MySQL 里对用户进行授权操作后都需要执行 flush privileges 才能生效,怎么我在你写的涉及到用户授权相关的文章里都没有看到执行 flush privileges 语句?

对于这个问题的解答,首先得明白语句 flush privileges 的作用是什么?flush privileges 是 flush 语句集合里的一条子项,执行它的作用是来同步 MySQL 磁盘和内存中的授权数据,让其保持一致。说详细点就是全量读取授权表的磁盘数据并且完全覆盖内存中的授权数据,又或者反着同步磁盘上的授权数据。
具体可以参考官网手册链接:https://dev.mysql.com/doc/refman/8.0/en/privilege-changes.html

接下来用两个简单示例说明执行 flush privileges 语句的时机。
第一,何时使用?
当授权数据在磁盘和内存中不一致时,存在两种时机:一是内存数据较新;另一个则是磁盘数据较新。当这两点中的任意一点存在时都需要执行 flush privileges 语句。
比如直接对表 mysql.user 执行 DML 语句,那么此时磁盘数据较新,需要手动执行 flush privileges 语句来覆盖内存中的授权数据。

举个例子,用户 ytt_u1 拥有的权限数据如下:

mysql:(none)>show grants for ytt_u1;
+-------------------------------------+
| Grants for ytt_u1@%                 |
+-------------------------------------+
| GRANT SELECT ON *.* TO `ytt_u1`@`%` |
+-------------------------------------+
1 row in set (0.00 sec)

管理员来直接更新底层用户表数据: 取消 select 权限。

mysql:(none)>update mysql.user set select_priv='N' where user ='ytt_u1';
Query OK, 1 row affected (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 0

复查用户 ytt_u1 拥有的权限数据:结果没有同步。

mysql:(none)>show grants for ytt_u1;
+-------------------------------------+
| Grants for ytt_u1@%                 |
+-------------------------------------+
| GRANT SELECT ON *.* TO `ytt_u1`@`%` |
+-------------------------------------+
1 row in set (0.00 sec)

手动执行 flush privileges 语句:再次查看用户 ytt_u1 的权限数据,数据已经同步为最新。

mysql:(none)>flush privileges;
Query OK, 0 rows affected (0.12 sec)

mysql:(none)>show grants for ytt_u1;
+------------------------------------+
| Grants for ytt_u1@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO `ytt_u1`@`%` |
+------------------------------------+
1 row in set (0.00 sec)
第二,何时不需要使用?
MySQL 内部命令自动更新或者删除用户授权数据。

比如 create user 、grant 、revoke 等语句执行后会自动同步授权数据,如无异常,则不需要手动执行 flush privileges 语句。举个例子:还是用户ytt_u1,查看最新权限数据,结果显示没有任何权限。

mysql:(none)>show grants for ytt_u1;
+------------------------------------+
| Grants for ytt_u1@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO `ytt_u1`@`%` |
+------------------------------------+
1 row in set (0.00 sec)

用 grant 语句来给用户 ytt_u1 赋予数据库 ytt 的只读权限:

mysql:(none)>grant select on ytt.* to ytt_u1;
Query OK, 0 rows affected (0.20 sec)

查看用户 ytt_u1 的权限数据:数据已经同步为最新。

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

再来看下取消授权操作是否也会同步最新授权数据:

mysql:(none)>revoke select on ytt.* from ytt_u1;
Query OK, 0 rows affected (0.09 sec)

查看用户 ytt_u1 的权限数据:数据也是及时同步的。

mysql:(none)>show grants for ytt_u1;
+------------------------------------+
| Grants for ytt_u1@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO `ytt_u1`@`%` |
+------------------------------------+
1 row in set (0.00 sec)
所以只要按照 MySQL 内置的用户管理语句来操作用户授权信息,则不需要手动执行 flush privileges 语句,反之则需要。
手把手教你自制Type-C OTG转换器(附电路图及避坑指南) 本文详细指导如何自制Type-C OTG转换器,包括核心电路设计、元器件选型及焊接技巧,特别强调硬件检测电路的关键作用。通过实测数据和避坑指南,帮助开发者解决兼容性问题,实现高效数据传输。 阅读详情

相关推荐

Keil MDK安装NRF52832开发环境全攻略(附系统时间错误解决方案)

本文详细介绍了如何使用Keil MDK搭建NRF52832开发环境,包括基础软件安装、项目配置关键步骤以及常见问题解决方案。特别针对系统时间错误导致的编译失败问题提供了实用解决方法,帮助开发者快速上手NRF52832开发。

weixin_29168153的博客 505

postgres权限赋权以及search_path设置

#pg权限列表 GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER } [, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } TO { [ GROUP ] role_name | PUBLIC } .

乡下人 3429

数字芯片后端设计实战:Memory Compiler参数配置与SRAM生成优化

本文深入解析数字芯片后端设计中Memory Compiler的核心参数配置与SRAM生成优化策略。详细探讨了容量结构、频率设定、工艺角选择等关键参数的配置要点与常见误区,并提供了从.lib/.lef文件转换到后端流程整合的实战指南,旨在帮助设计者生成面积、性能和功耗更优的存储单元。

weixin_29194255的博客 701

mysql+postgresql创建数据库、用户、权限

mysql drop database if exists dc_test; drop user dc_test; create database dc_test; create user dc_test@'%' IDENTIFIED BY 'dc_test'; grant all privileges on dc_test.* to dc_test; flush privileges;

jsjw18的专栏 1951

MOS管的体二极管在LLC中的作用

MOSFET是一个三端器件(G、D、S),在N沟道MOSFET的结构中,源极和漏极之间的N型材料中自然形成了一个寄生的PN结,这个PN结就是体二极管(Body Diode),它是不可避免的器件结构。📌 对于N沟MOSFET:体二极管是从漏极 D 到源极 S 的正向导通二极管,方向为 D → S。MOS管的体二极管在LLC中并不是主功率通道,但却是实现软开关(ZVS)和能量过渡的关键“临时路径”。用得好,它是你的朋友;忽略它,电路就可能烧毁。

weixin_43199439的博客 699

07RK3568 I2S主模式 FPGA

RK3568与fpga通过i2s0连接,fpga连接音频芯片ES8388,RK为i2s主模式。调试时发现可正常采集来自fpga的数据。不可发送数据至fpga。由于i2s后连接fpga这里用了Rockchip的dummy-codec,一个虚拟的编解码器。

qq_39451352的博客 303

Ubuntu 安装 mysql、sqlite3、postgresql

NAVICAT 官网:http://www.navicat.com.cn/products NAVICAT16 PREMIUM NAVICAT16 :http://zzzzzz.me/post-73329.html Xmanager :https://www.xshellcn.com/ 1、Ubuntu 安装 mysql ubuntu上安装MyS...

墨鱼菜鸡 774

小黄鸭机器人技术全解-第 07 章 关节自由度与行程参数

—鸭子歪着头转头时,转的平面是斜的,这正是它"灵动"感的来源。仿真里这是自动的(轴定义在父刚体系),复刻时不需要做任何事——

yolo模型训练找我,AI游戏合作找我 65

sql脚本之flush privileges的用法

flush privileges是刷新权限功能,对表进行的更改后,不能立即生效,导致使用时还是旧数据,使用该命令则可以立即看到改后的效果。

zouyang920的博客 1887

论文研读 Corundum: An Open-Source 100-Gbps NIC

Corundum 通过在 FPGA 上构建并行 pipeline、高效 DMA 通道、无阻塞队列结构、低延迟调度器,实现了在 PCIe Gen3 x16 接口上稳定跑满 100Gbps 吞吐量。

Double Galaxy 489

【DaVinci Developer工具实战】03 -导入xml文件

本文档描述了 DaVinci Developer 导入数据的的具体功能 ,它适用于导入AUTOSAR SWC 模板【AUTOSAR XML 文件】 文件。

1991

PostgreSQL日常运维

通过本文,你已掌握PostgreSQL从基础操作到安全配置的核心技能。无论是数据库的增删改查模式的逻辑隔离,还是远程连接的安全控制与密码重置的应急处理,均需结合实际场景反复练习。记住:数据库运维的核心是严谨性与预防性——提前制定备份策略、定期审计权限、关注版本更新(PG每年发布一个大版本,含重要安全修复),才能让你的数据库系统在复杂环境中稳健运行。

2503_91100205的博客 1654

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MySQL何时需要手动刷新授权表

MySQL数据库中对用户的授权,通常都需要flush privileges刷新一下,才可以生效,到底什么操作,才需要做这个,他背后的原理是什么?杨老师的这篇文章《技术分享 | 何时需要手动...

bisal的专栏 1277

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

新特性解读 | MySQL 8.0.28 用户连接内存限制

作者:杨涛涛资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任...

杨建荣的学习笔记 1055

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

yuzu 模拟器多版本选型与 Switch 游戏性能调优实战

yuzu-downloads 项目归档了 2024 年 2 月底至 3 月初的 yuzu 模拟器 Mainline 构建快照,每个版本同时提供 AppImage(Linux)与 zip(Windows)两种格式。面向在电脑上运行 Switch 游戏时遇到卡顿、掉帧、闪退的用户,这里说明性能瓶颈定位、版本选择与 Switch 游戏性能调优的完整过程。整体流程是:先定位瓶颈,再选版本,然后逐层调参,并

gitblog_00482的博客 72

mysql和pgsql查看以及修改密码步骤

mysql修改方式 第一步:查看mysql用户名以及密码 select * from mysql.user //注意mysql5.7以上版本password用authentication_string字段表示 第二步:修改密码 update mysql.user set authentication_string=password('123456') where user='root'; 第三步:刷新权限 flush privileges; pgsql修改方式 第一步:查看用户名和密码 select

wei1359765074410的博客 2966

命令行下,Mysql、Postgre、DB2 的一些基本操作

目录 ■mysql ・自己的MySQL用户 ・MySQL配置文件 ・MySQL导出数据文件 ・MySQL导入数据文件 1.启动服务 (进入bin目录) // 启动是 「mysqld」 连接是 「mysql」 1.1.确认服务是启动状态 2.连接DB // 启动是 「mysqld」 连接是 「mysql」 3.连接并执行SQL 4.查看登录用户 5.常用命令(コマンド) 6.查看存储过程 7.查看触发器 8.导入csv文件 9.伪表 DUAL 10.查看 前10件 .....

sun0322 1万+

MySQL和PostgreSQL数据库安全配置

0x00 MySQL和PostgreSQL安全配置 针对开源数据库MySQL和PostgreSQL的安全配置主要主要通过身份鉴别、访问控制、安全审计、入侵防范、资源控制五个方面来实现。 0x01 身份鉴别 MySQL和PostgreSQL均可以实现身份鉴别功能。通过设置数据库基本上能够实现能够满足《信息系统安全等级保护基本要求》第三级身份鉴别中大部分要求,但是对于“f 项应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别”,需要使用第三方的身份鉴别技术,如:口令、数字证书、生物特征等。 (一)

swordheart的博客 4298

orcale学习我擦嘞这个怎么是14年的视频你0202年发了出来是想怎样

记录orcale学习记录.知识点

DXH9701的博客 573

创建本地mysql和postgresql数据库详解

一步步教你怎么安装本地的mysql和postgresql

FUUK122的博客 2900

【postgresql】权限(Privileges)

权限(privileges)是决定用户或角色可以对数据库对象(如表、视图、序列和函数)执行哪些操作的许可。权限对于维护安全性和控制对数据的访问至关重要。

一个写了10年bug的程序员日常笔记。 1697

postgresql修改配置生效方法

对于配置服务器,,太多时候我们在Linux中做的操作是,配置*.conf文件,然后重启服务。而很多服务都具有reload功能,而但是具体到某个配置,有时候直接说出需不需要重启服务而使得配置生效,这并不是一件容易的事情。 但是,postgresql却讲这部分能用在数据表中显式的告诉了我们: postgres# select name, context from pg_settings; name context archive_command sihup archive_mode

qq_41609957的博客 1795

Gauss数据库相应的权限授权的语法

gauss数据库权限语法详解,Gauss数据库相应的权限授权的语法

liuxinglei13的专栏 5017

PostgreSQL安装用户、角色与权限管理

记得使用-d指定数据库,默认的超级用户和创建的数据库都是postgres,如果只修改了超级用户名称,psql的时候记得使用-d指定数据库,否则默认连接的就是和用户名同名的数据库。psql命令非常方便,提供了很多默认选项,如果没有修改过默认配置,用起来非常方便顺手,但是如果修改了默认配置,就一定要多注意。PostgreSQL中用户与角色基本是一个东西,唯一区别是角色没有登录权限,用户有登录权限,可以登录。所以,我们涉及权限的时候,可以把权限分配给角色,在为用户指定不同的角色(一个用户可以有多个角色)

trayvontang的博客 2489

linux postgresql 创建数据库,Linux下创建Postgresql数据库的方法步骤

Linux下创建Postgresql数据库的方法步骤前言PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。因为之前用默认的配置创建pgsql数据库,导致root的占用率达到97%:所以决定重新创建一次数据库,很多坑又忘了。为了避免以后再忘记,所以决定记录下面,分享出来供大家参考学习,下面来一起看看详细的介绍吧...

weixin_34044446的博客 2737

Postgresql学习笔记-高级语法篇

Postgresql学习笔记-高级语法篇 Postgresql 约束 Postgresql约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建表的时候就规定(通过CREATE TABLE 语句),或者在表创建之后规定(通过ALTER TABLE 语句)。 约束确保了数据库中数据的准确性和可靠性。 约束可以是列级或者表级。列级约束仅适用于列...

cyh0503的博客 1417
上一篇: 故障分析 | MySQL 从机故障重启后主从同步报错案例分析
下一篇: SQL审核 | SQLE 二次开发环境搭建
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值