MySQL讲义第 57 讲——MySQL用户权限管理之权限表结构分析
文章目录
- MySQL讲义第 57 讲——MySQL用户权限管理之权限表结构分析
- 一、user 表和 db 表结构分析
- 二、tables_priv 和 columns_priv 表结构分析
- 三、procs_priv 表结构分析
在 MySQL 中和权限有关的表存放在 mysql 数据库中,主要有 user、db、tables_priv、columns_priv 和 procs_priv 表。这几张表中存放的信息如下:
(1)user 表:存放用户账户信息以及全局权限,如果在此表中拥有某个权限则意味着对所有数据库都有此权限。
(2)db 表:存放数据库级别的权限。
(3)tables_priv 表:存放表级别的权限。
(4)columns_priv 表:存放列级别的权限。
(5)procs_priv 表:存放存储过程和函数级别的权限。
一、user 表和 db 表结构分析
表名 | user 表 | db 表 | 含义 |
用户和数据库信息 | Host | Host | 主机名 |
User | User | 用户名 | |
Db | 数据库名 | ||
权限信息 | Select_priv | Select_priv | 查询权限 |
Insert_priv | Insert_priv | 插入权限 | |
Update_priv | Update_priv | 更新权限 | |
Delete_priv | Delete_priv | 删除权限 | |
Index_priv | Index_priv | 创建索引权限 | |
Alter_priv | Alter_priv | 修改数据库、表权限 | |
Create_priv | Create_priv | 创建数据库、表权限 | |
Drop_priv | Drop_priv | 删除数据库、表权限 | |
Grant_priv | Grant_priv | Grant 权限 | |
Create_view_priv | Create_view_priv | 创建视图权限 | |
Show_view_priv | Show_view_priv | 查看创建视图语句权限 | |
Create_routine_priv | Create_routine_priv | 创建存储过程、函数权限 | |
Alter_routine_priv | Alter_routine_priv | 修改存储过程、函数权限 | |
Execute_priv | Execute_priv | 运行存储过程、函数权限 | |
Trigger_priv | Trigger_priv | 创建触发器权限 | |
Event_priv | Event_priv | 查看、修改、删除事件的权限 | |
Create_tmp_table_priv | Create_tmp_table_priv | 创建临时表权限 | |
Lock_tables_priv | Lock_tables_priv | 锁定表的权限 | |
References_priv | References_priv | 创建外键的权限 | |
Reload_priv | Reload 权限 | ||
Shutdown_priv | 允许关闭数据库实例 | ||
Process_priv | 允许查看进程信息 | ||
File_priv | 允许访问磁盘文件 | ||
Show_db_priv | 允许执行 show databases 命令 | ||
Super_priv | 允许执行数据库管理命令 | ||
Repl_slave_priv | Replication slave 权限 | ||
Repl_client_priv | Replication client 权限 | ||
Create_user_priv | 创建用户权限 | ||
Create_tablespace_priv | 创建表空间权限 | ||
数据库安全设置 | ssl_type | ||
ssl_cipher | |||
x509_issuer | |||
x509_subject | |||
plugin | |||
authentication_string | 用户密码 | ||
password_expired | 如果设置为 Y 表示允许 DBA 将此用户的密码设置成过期,密码过期后要求用户重置密码 | ||
password_last_changed | 表示密码上次的修改时间 | ||
password_lifetime | 表示从 password_last_changed 时间开始此密码过期的天数 | ||
account_locked | 用户被锁定,无法使用 | ||
资源控制 | max_questions | ||
max_updates | |||
max_connections | |||
max_user_connections |
二、tables_priv 和 columns_priv 表结构分析
表名 | tables_priv 表 | columns_priv 表 | 含义 |
用户、数据库、表信息 | Host | Host | 主机名 |
Db | Db | 数据库名 | |
User | User | 用户名 | |
Table_name | Table_name | 表名 | |
Column_name | 列名 | ||
权限列信息 | Table_priv | 表访问权限 | |
Column_priv | Column_priv | 列访问权限 | |
其他信息 | Timestamp | Timestamp | 创建和修改时间 |
Grantor |
说明:
(1)Table_priv 的取值可以为:Select、Insert、Update、Delete、Create、Drop、Grant、References、Index、Alter、Create View、Show view、Trigger。
(2)Column_privSelect 的取值可以为:Select、Insert、Update、References。
三、procs_priv 表结构分析
表名 |
| 含义 |
用户信息以及存储过程、函数信息 | Host | 主机名 |
Db | 数据库名 | |
User | 用户名 | |
Routine_name | 存储过程、函数名 | |
Routine_type | 类型:存储过程或函数 | |
权限信息 | Proc_priv | 权限 |
其他信息 | Timestamp | 创建和修改时间 |
Grantor |
说明:
Proc_priv 的取值可以为:Execute、Alter Routine、Grant。