MySQL 基础知识(八)之用户权限管理 |
您所在的位置:网站首页 › mysql查询用户权限命令在哪 › MySQL 基础知识(八)之用户权限管理 |
关于 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 |