暂无图片
MySQL数据库的访问控制流程是怎样的?
我来答
分享
2023-06-30
MySQL数据库的访问控制流程是怎样的?

MySQL数据库的访问控制流程是怎样的?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
宇飞

MySQL服务器收到客户端的连接请求时,首先对连接用户进行身份验证,身份验证通过之后 ,用户可以连接到MySQL服务器,之后用户执行每个操作都会进行权限验证。具体的访问控制流程如下:

1)先通过user表中的host、user、authentication_string、account_locked四列对用户进行判断,如果前三列的值不匹配,则不能通过验证;如果前三列的值匹配且account_locked的值为N,则通过验证;如果前三列的值匹配便account_locked的值为Y,则不能通过验证。

2)通过身份验证后,MySQL服务器会对用户执行的每个操作按照5个级别的权限表(user、db、tables_priv、column_priv、proce_priv)的顺序逐级进行验证,即先检查全局权限表user,如果user中对应的权限为Y,则确认此用户对所有数据库的此项权限都为Y,将不再检查db、tables_priv、column_priv、proce_priv等其他权限表;只有user表中对应的权限为N;才到下一级别的权限表db中检查此用户和数据库匹配的记录,如果对应的权限为Y,则确认此用户对该数据库的此项权限都为Y,不再检查其他的权限表;只有db表中对应的权限为N,才去检查下级级别的权限表tables_priv,以此类推。如果所有的权限表都检查完毕,依旧没有允许的权限,MySQL服务器会返回错误信息,用户操作不能执行。

暂无图片 评论
暂无图片 有用 4
打赏 0
暂无图片
回答交流
Markdown


请输入正文
提交
相关推荐
MySQL的审计功能是不是企业版的才能用?
回答 2
已采纳
社区版也有,但是功能比较简陋。企业版是官方推的。但是即使如此我还是推荐你用第三方数据库审计。旁路接入,减少数据库审计压力。
请问mysql占用内存呈上升趋势是正常的吗?是不是要做flush什么的呢?
回答 2
内存上升要看下是否配置合理。比如innodbbufferpoolsize是否设置过多。swap是否使用。https://www.modb.pro/db/86827有些mysql内存相关的说明,参考一下
windows平台的mysql5.7,data目录下出现ib_XXXX_XXXXXXXX_trunc.log,是个什么文件
回答 2
已采纳
找到了个undo的描述:/UNDOlogtruncatelogger.Neededtotrackstateoftruncateduringcrash.Anauxiliaryredologfileund
聚集索引与非聚集索引的区别
回答 4
已采纳
一个表中只能拥有一个聚集索引,而非聚集索引一个表可以存在多个。聚集索引,索引中键值的逻辑顺序决定了表中相应行的物理顺序;非聚集索引,索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。索引是通过二叉树的
sharedisk和sharenothing架构下做分布式查询优化的思路有什么不同?
回答 1
好大的一个问题。大体上是:Oracle属于ShardDisk架构,Oracle数据库殷勤自身支持跨实例的并行分布式查询,在InMemory上还有进一步增强。基本上不需要显示的控制,主要依赖Oracle
mysql更新某条数据,多数情况下都成功,偶尔会出现提示成功,字段没更新的情况,这是什么原因?
回答 1
已采纳
请问是在命令行执行的还是程序执行的?如果是命令行一般都是成功的,你再返回去查一下。一定是成功的。如果其他会话没有看到,可能是rr事务隔离级别导致的。如果是程序,有可能是没控制好出现bug。还有可能是其
mysql如果只有主键,是不是就只有一颗b+树?
回答 1
已采纳
是的。我是这么理解的。
MySQL分段存储主要有什么优点?
回答 1
已采纳
分段存储主要有以下优点:1)段的逻辑独立性不仅使其易于编译、管理、修改和保护,也便于多道程序共享。2)段长可以根据需要动态改变,允许自由调度,以便有效利用主存空间。3)方便分段共享、分段保护、动态链接
MySQL 怎么只取标红的数字1吗?
回答 1
已采纳
第三列的基础上,加个函数right(?,1),再加层判断if(right(?,1)1,'is1','not1');
如何从oracle迁移到mysql,最短停机时间
回答 1
已采纳
使用ogg