用户权限(一)

1. 查看数据库中所有的表。和用户权限相关的是Mysql库中的user,db , table_priv , columns_priv ,四个表

select * from INFORMATION_SCHEMA.TABLES

 

2. 分别查看四个表的内容

User表:存放用户账户信息以及全局级别(所有数据库)权限,决定了来自哪些主机的哪些用户可以访问数据库实例,如果有全局权限则意味着对所有数据库都有此权限 
Db表:存放数据库级别的权限,决定了来自哪些主机的哪些用户可以访问此数据库 
Tables_priv表:存放表级别的权限,决定了来自哪些主机的哪些用户可以访问数据库的这个表 
Columns_priv表:存放列级别的权限,决定了来自哪些主机的哪些用户可以访问数据库表的这个字段 
Procs_priv表:存放存储过程和函数级别的权限

 

 

 

 

3.Mysql 权限验证过程

  • 先从user表中的Host,User,Password这3个字段中判断连接的ip、用户名、密码是否存在,存在则通过验证。
  • 通过身份认证后,进行权限分配,按照user,db,tables_priv,columns_priv的顺序进行验证。
  • 即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;
  • 如果user中为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;
  • 如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限。

 

posted @ 2020-07-14 21:58  Lucky-小王子  阅读(354)  评论(0编辑  收藏  举报