mysql 的帐号认证和权限控制

2023-10-31

mysql 的语句处理流程 中,有两处进行了权限的管理:分别为 authentication 和 access control。

 

1. authentication是使用user(用户名)和host(客户端主机)以及password对客户端的身份进行验证,具体如下:

    a) 首先调用sql/sql_acl.cc中的acl_check_host()判断在匹配到的客户端主机名或ip中是否对应该客户端提供的用户名;

    b) 然后进行密码验证:

            i)   server端发送一段随机字符串 str1;

            ii)  client端将密码进行两次hash,并使用接受到的str1一起生成 str2 发送到server端;

            iii) server端进行验证;

    c) 调用sql/sql_parse.cc中的check_user()核实该用户是否存在以及密码是否正确;

    d) 最后调用sql/sql_acl.cc中acl_getroot(),用来核实mqh,如果满足要求,则调用acl_update_user()将THD类中的用户数据和资源结构进行更新;

 

2. access control是通过系统权限表来判断用户是否有对某个数据库对象进行操作的权限;

    这里主要参照的是mysql库中的user/db/host/tables_priv/columns_priv/procs_priv六个表;

    mysql给用户的权限按从大到小:user -> db(host) -> tables_priv -> columns_priv -> procs_priv

 

 

参考:  《mysql核心内幕》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 的帐号认证和权限控制 的相关文章

  • MySQL - 选择一行 - 然后相对于所选行的下一个和上一个

    我会尽力澄清这一点 我需要在不使用 id 的情况下选择特定行和该选定行的前一个相对行以及该选定行的下一个相对行 这可能吗 简而言之 上一篇和下一篇 我不能 也许我只是不知道如何 使用 id 的原因是因为它们不是按顺序排列的 正如您从这个相当
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • 限制对记录的访问。基于声明的权限是个好主意吗

    在 net 基于声明的身份框架中 如果我想限制用户对某个帐户 特定帐户 123456 执行操作 查看或编辑 我说的是商业实体 例如银行帐户 创建索赔是个好主意吗对于他们可以查看或编辑的每个帐户 一组中有很多索赔有什么缺点吗 系统管理员可能有
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • 如何导出带有数据的 MySQL 架构?

    我有一个完整的架构 其中有许多表 其中包含 MySQL 查询浏览器中的数据 现在我想将这个包含所有表 数据的完整数据库发送给我的同事 我怎样才能将其发送给我的同事 以便他可以将这个完整的架构放入他的 MySQL 查询浏览器中 Thanks
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 日期时间与时间戳字段

    我是 MySQL 数据库的新手 您是否建议在表创建中使用日期时间或时间戳字段以及原因 我正在使用 MySQL 5 7 和 innodb 引擎 Thanks 我会用TIMESTAMP对于任何需要自动管理的事情 因为它支持诸如ON UPDATE
  • 如何绕过Keycloak登录表单直接跳转到IDP登录?

    我正在运行saml 经纪人身份验证 https github com keycloak keycloak tree 3 2 1 Final examples broker saml broker authentication例子 我在 UI
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • MySQL 和 PHP 参数 1 作为资源

    好吧 当我运行下面提到的代码时 PHP 向我抛出此错误 在日志中 Error mysql num rows 期望参数 1 为资源 第 10 行 place 中给出的字符串 9 11号线 queryFP SELECT FROM db coun
  • MySQL正则表达式:如何将字符串中的数字与\d匹配?

    我有一个专栏release date它以字符串格式存储日期 不是 DATETIME 格式 因为它们有时可以是任何其他字符串文字 我想根据给定的月份和年份查找任意日期的所有记录 尝试遵循但对我不起作用 gt Post find all con
  • JDBC 错误:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我在 Java Eclipse 中收到错误消息 我在 MySql 中有一个数据库 它有列 String user name int id time int id desk int user password 我想
  • 如何删除 MySQL 数据库?

    你可能从我的上一个问题中注意到一个问题引发了更多的问题 在 MySQL 监视器中阅读 MySQL 手册 https stackoverflow com questions 1081399 我的数据库现在无法使用 部分原因是我想破坏东西并且无
  • MySQL JOIN 滥用?情况会变得有多糟糕?

    我读了很多关于关系数据库的文章 在每个 SELECT 上使用许多 JOIN 语句 但是 我一直想知道滥用这种方法从长远来看是否会出现任何性能问题 例如 假设我们有一个users桌子 我通常会添加 最常用 的数据 而不是进行任何额外的联接 例
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • 无法连接到 MAMP 上的 phpMyAdmin

    我收到此错误消息 MySQL 说道 无法连接 设置无效 phpMyAdmin 尝试连接 MySQL 服务器 但服务器拒绝连接 您应该检查配置中的主机 用户名和密码 并确保它们与 MySQL 服务器管理员提供的信息相对应 用户和通行证是默认的

随机推荐

  • MySQL——索引及调优篇

    一 索引的数据结构 1 1 为什么要使用索引 索引是存储引擎用于快速查找数据记录的一种数据结构 就好比一本教科书的目录部分 通过目录中找到对应文章的页码 便可快速定位到需要的文章 MySQL中也是一样的道理 进行数据查找时 首先查看查询条件
  • 关于常用的http请求头以及响应头详解

    一 常用的http请求头 1 Accept Accept text html 浏览器可以接受服务器回发的类型为 text html Accept 代表浏览器可以处理所有类型 一般浏览器发给服务器都是发这个 2 Accept Encoding
  • Mann-Kendall突变检测(mk突变检测)

    Mann Kendall突变检测 数据序列y 结果序列UFk UBk2 读取excel中的数据 赋给矩阵y 获取y的样本数 A为时间和径流数据列 A xlswrite 数据 xls x A 1 时间序列 y A 2 径流数据列 N leng
  • MKP勒索病毒数据恢复

    引言 在数字化时代 恶意软件如影随形 MKP勒索病毒以其毒辣的加密手段和威胁的勒索信息令人防不胜防 电脑中了MKP勒索病毒 不仅数据被锁定 生活和工作也受到了重创 然而 不要惊慌失措 我们可以通过果断的处理和坚定的预防 守护我们的数字世界
  • Win7平台Python3使用impyla连接Hive遇到的坑

    环境硬件配置及Hadoop Hive版本 此博客置顶文章中有 安装步骤 pip install pure sasl Looking in indexes https pypi tuna tsinghua edu cn simple Coll
  • jar包里class文件如何替换?

    1 将jar包先解压成文件 2 替换对应目录文件 3 windows环境进入要打jar包的文件目录底下 按住shift右键打开命令窗口 默认进入到了对应目录底下 4 使用命令打包文件底下的所有文件 jar cf0M jar包名 jar 5
  • 使用commons-httpclient上传文件

    这个jar是jakarta官方的标准版本 现在的3 0的BETA已经出来了 但是稳定还是最重要的 这个东西到底有什么好处呢 他使利用java作为一个HTTP的客户端成为可能 基本能模拟一切HTTP客户端的访问模式 而其使用起来之简单 让以前
  • pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    前言 笔者使用的是 pycharm 1 打开你所在的任意工程 2 进入 File gt setting 3 pip 这一栏进行双击 4 点击左下方的 install package 开始下载安装包 5 借助 everything 工具 找到
  • FreeRTOS学习简易笔记

    第1章 FreeRTOS引入及堆栈 1 1 FreeRTOS学习三阶段 1 理解RTOS总原理 会移植官方Demo 会使用 2 知道内部机制 源码还没看 3 知道内部实现 能看懂源码 并能轻松移植任何单片机 1 2 RTOS操作系统 与 裸
  • 最详细小白入门Python4-变量

    变量特性 容器 临时 可变 变量定义的格式 变量名 值 标识符的命名规则 只能是数字字母下划线组成 首字母不能是数字 严格区分大小写 不能是关键字 在Python中定义变量必须赋值 否则报错 牛奶和可乐交换的案例 交换方式 获取一个空杯子
  • 大数据运维学习之路

    业内有这么一句话说 云计算可能改变了整个传统IT产业的基础架构 而大数据处理 尤其像Hadoop组件这样的技术出现 将是改变IT业务模式的一种技术 另外 很多小伙伴可能还搞不明白云和Hadoop有什么关系 事实上这是两种截然不同的技术 今天
  • [datawhale202302]CS224W图机器学习:图的基本表示及特征工程

    结论速递 本章涉及了图基本表示及传统的特征工程 图由节点和连接组成 节点和连接上都可以有不同的属性 根据属性的特点 分为几类不同的图 其中异质图和二分图是比较重要的特殊图 图可以用邻接矩阵进行结构化表示 如果图过于稀疏 也可以使用连接列表和
  • c语言单例模式,c#单例模式(Singleton)的6种实现

    1 1 1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例 如 IO处理 数据库操作等 由于这些对象都要占用重要的系统资源 所以我们必须限制这些实例的创建或始终使用一个公用的实例 这就是我们今天要介绍的 单例模式 Singl
  • SecureCRT的设置

    转载 简要介绍 VanDyke CRT 和 VanDyke SecureCRT是最常用的终端仿真程序 简单的说就是windows下登录UNIX或Liunx服务器主机的软件 二者不同的是SecureCRT支持SSH SSH1和SSH2 本文主
  • python基础 四、面向对象

    第六章 面向对象 继承 多继承 class FooParent object def init self self parent I m the parent print Parent def bar self message print
  • dicom信息+dcmtk使用

    dcmtk使用 常见错误 错误 E can t load data dictionary W Monochrome encoder No data dictionary 解决 https forum dcmtk org viewtopic
  • Internet路由之路由表查找算法概述-哈希/LC-Trie树/256-way-mtrie树

    说明 本文没有源码分析的内容 然而我认为能理解本质比能看懂源码更有用 因为理解了本质之后 你也许就不用再看源码了 你甚至都可以写源码了 这就是Linux内核和Cisco的网站中包含大量文档的原因 引 路由是互联网的一个核心概念 广义的讲 它
  • js深克隆五种方法

    使用递归 使用递归的方式实现数组 对象的深拷贝 判断拷贝的要进行深拷贝的是数组还是对象 是数组的话进行数组拷贝 对象的话进行对象拷贝 进行深拷贝的不能为空 并且是对象 function cloneDeep obj var objClone
  • DRC设计规则设置介绍-Design Compiler(四)

    文章目录 4 1 设计规则相关命令设置 4 1 1 set load 输出驱动强度 4 1 2 set input transition 输入驱动强度 参考文档 系列学习介绍DC相关知识 包括ASIC基本单元相关 DC指令工艺库脚本相关 后
  • mysql 的帐号认证和权限控制

    在 mysql 的语句处理流程 中 有两处进行了权限的管理 分别为 authentication 和 access control 1 authentication是使用user 用户名 和host 客户端主机 以及password对客户端