首页 > 其他分享 >何时需要手动刷新授权表

何时需要手动刷新授权表

时间:2025-01-13 18:34:12浏览次数:3  
标签:none flush ytt 手动 u1 mysql 授权 刷新 privileges

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

对于这个问题的解答,首先得明白语句 flush privileges 的作用是什么?flush privileges 是 flush 语句集合里的一条子项,执行它的作用是来同步 MySQL 磁盘和内存中的授权数据,让其保持一致。说详细点就是全量读取授权表的磁盘数据并且完全覆盖内存中的授权数据,又或者反着同步磁盘上的授权数据。

接下来用两个简单示例说明执行 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

管理员来直接更新底层用户表数据:取消 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

手动执行 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 

第二,何时不需要使用?
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

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

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 

所以只要按照 MySQL 内置的用户管理语句来操作用户授权信息,则不需要手动执行 flush privileges 语句,反之则需要。

标签:none,flush,ytt,手动,u1,mysql,授权,刷新,privileges
From: https://blog.csdn.net/2301_80479959/article/details/145119296

相关文章

  • keycloak~巧用client-scope实现token字段和userinfo接口的授权
    keycloak中的client-scope允许你为每个客户端分配scope,而scope就是授权范围,它直接影响了token中的内容,及userinfo端点可以获取到的用户信息,这块我们可以通过自定义scope/mapper,来实现粒度的控制,并且这个mapper可以控制添加到token,或者添加到userinfo端点,这两块配置也是独立的,下面......
  • (倍福授权)国产EtherCAT从站控制芯片P2P替代ET1100
    EtherCAT技术是德国的倍福自动化(Beckhoff)开发,处于EtherCAT技术协会(ETG)框架之下,是一项开放但不开源的技术,任何相关设备的开发,都需要向其获取相关授权。就目前来看,获得Beckhoff授权的厂商并不多,而且大部分都是海外半导体厂商。不过近几年,随着国内EtherCAT市场的增长,情况开始有所改......
  • 实现无感刷新Token技术:.Net Web API与axios的完美结合
    备忘:https://mp.weixin.qq.com/s?__biz=MjM5MDE5MDM5NA==&mid=2449944319&idx=1&sn=71e84d8ee24769e77b19ca8367333b8f&chksm=b1bb10aa86cc99bc2f20686354e8184023278de74dba857a42d720dc47fabb654c12ecb83524&scene=21#wechat_redirect我们都知道Token是有设置有效期......
  • 宇航用VIRTEX5系列FPGA的动态刷新方法及实现
    SRAM型FPGA在宇航领域有广泛的应用,为解决FPGA在空间环境中的单粒子翻转问题,增强设计的可靠性,本文介绍一种低成本的抗辐照解决方案。该方案从外置高可靠存储器中读取配置数据,通过定时刷新结合三模冗余的方式消除单粒子影响,提高系统的鲁棒性。    1.总体设计    ......
  • 网站密码安全防护全攻略:预防未授权修改的有效措施
    保护网站账户的安全性是每个开发者和管理员的责任。为了避免密码被非法篡改,以下是几项重要的防范措施:强密码策略实施:强制要求用户设置复杂度较高的密码,包括大小写字母、数字及特殊字符组合。定期提醒用户更换密码,并限制连续登录失败次数。双因素认证启用:为重要账户开启双重验证......
  • Management-DecisionMaking-Leadership-Relationship: 组织关系管理: Authorization
    Management-DecisionMaking-Leadership-Relationship:组织关系管理:组织关系的Authorization“授权”与“越级”常态:稳定的层级传达:任免都会涉及:任人配队+授权赋能+配置资源管理和高层岗的重要“权利分布”有:“人事布局、代理/言人、财物配置、审批授权赋能、”......
  • 手动部署前后端分离的项目到本地
    1.准备工作使用maven打包springboot项目为.jar文件得到springboot-0.0.1-SNAPSHOT.jar打包vue项目npminstall-g@vue/cli安装VueCLI在项目根目录下,运行npmrunbuild命令来构建项目得到一个dist文件夹将打包好的文件通过远程仓库中转至docker虚拟机在虚拟机拉取镜像,并......
  • IoT平台权限管理:授权和访问控制系统设计
    在设计IoT(物联网)平台的权限管理和访问控制系统时,确保系统的安全性、可扩展性和灵活性是关键。该系统必须能够有效地控制用户和设备的访问权限,避免未经授权的操作,确保数据安全和隐私保护。以下是一个完整的权限管理和访问控制系统设计方案。###一、总体架构设计1.**用户身......
  • 免费手动打Windows Server补丁
    免费手动打WindowsServer2008R2补丁https://catalog.update.microsoft.com/search.aspx?q=kb4474419然后到windows上双击运行即可......
  • VMware授权方式
    1、更新与支持:VMware订阅包括产品更新、安全补丁以及技术支持。在订阅有效期内,可以享受最新版本的软件功能,获得技术支持。而永久授权不包含产品更新或长时间的技术支持。购买时所获取的版本是永远可用的。2、价格不同:VMware订阅是按年收费,而永久授权是一次性付费。订阅和永久授......