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 表结构分析

表名

procs_priv

含义

用户信息以及存储过程、函数信息

Host

主机名

Db

数据库名

User

用户名

Routine_name

存储过程、函数名

Routine_type

类型:存储过程或函数

权限信息

Proc_priv

权限

其他信息

Timestamp

创建和修改时间

Grantor

说明:

Proc_priv 的取值可以为:Execute、Alter Routine、Grant。