MySQL 基础知识(八)之用户权限管理

您所在的位置:网站首页 mysql查询用户权限命令在哪 MySQL 基础知识(八)之用户权限管理

MySQL 基础知识(八)之用户权限管理

2024-07-11 02:13| 来源: 网络整理| 查看: 265

        关于 MySQL 的权限简单的理解就是 MySQL 允许你做你权利以内的事情,不可以越界。比如只允许你执行 select 操作,那么你就不能执行 update 操作。存储账户权限信息的表主要有四个:user 表、db 表、tables_priv  表、columns_priv 表。

用户权限信息表:

user 表:user 表存储了允许连接到服务器的用户信息,并且它指定这些用户有哪种全局(超级用户、管理员)权限。在 user 表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了 DELETE 权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。db 表:db 表存储了用户对某个数据库的操作权限,在这里指定的权限适用于一个数据库中的所有表。tables_priv 表:tables_priv 表存储了用户对某个表的操作权限,在这里指定的一个权限适用于一个表的所有列。columns_priv 表:columns_priv 表存储了用户对表中某列的操作权限,在这里指定的权限适用于一个表的特定列。

MySQL 用户权限管理主要有以下作用:

可以限制用户访问哪些库、哪些表可以限制用户对哪些表执行 SELECT、CREATE、DELETE、DELETE、ALTER 等操作可以限制用户登录的 IP 或域名可以限制用户自己的权限是否可以授权给别的用户

MySQL 权限信息表的验证过程分为两个阶段:连接权限验证和执行权限验证

先从 user 表中的 Host、User、Password (MySQL 8.0 版本没有 Password,有 authentication_string,它是对密码加密后得到的密文)这 3 个字段中判断连接的 IP、用户名、密码是否存在,存在则通过验证

通过连接权限验证后,进行权限分配,按照 user、db、tables_priv、columns_priv 的顺序进行验证

校验 user 表,对于全局权限是 ok → 直接执行检验 db 表,对于某个特定的数据库有权限 → 执行检验 tables_priv 表,对于特定数据库下的某些表是有权限 → 执行检验 columns_priv 表,对于特定表中的某些列有权限 → 执行 

 MySQL 的权限分布,权限分布就是针对表可以设置什么权限,针对列可以设置什么权限等等

权限分布

可能的设置的权限

表权限

'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'

列权限

'Select', 'Insert', 'Update', 'References'

过程权限

'Execute', 'Alter Routine', 'Grant'



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3