Skip to content

Latest commit

 

History

History
53 lines (31 loc) · 1.49 KB

File metadata and controls

53 lines (31 loc) · 1.49 KB

权限表

MySQL 的权限控制依赖系统库中的权限表。数据库会根据这些表中的内容来判断某个用户是否可以连接、访问数据库、执行某类操作。

user表

mysql.user 表是最核心的权限表之一,主要保存用户账号的全局信息。

它通常包括:

  • 用户名
  • 主机来源
  • 身份认证信息
  • 全局权限信息

可以简单理解为:它决定“谁可以从哪里登录,以及在全局范围内拥有哪些基本权限”。

db表和host表

db 表主要记录用户在某个数据库级别上的权限。

例如:

  • 某个用户只对 shop 数据库有查询权限
  • 某个用户只对 cms 数据库有增删改查权限

host 表与主机匹配相关,不过在很多现代使用场景中,直接感知它的机会并不多。

tables_priv表和columns_priv表

当权限需要细化到表级或列级时,就会涉及这些权限表。

  • tables_priv:表级权限
  • columns_priv:列级权限

适用场景例如:

  • 某用户只能访问某一张表
  • 某用户只能查看表中的部分字段

procs_priv表

procs_priv 表用于记录存储过程和存储函数的相关权限。

例如:

  • 谁可以执行某个存储过程
  • 谁可以修改某个存储函数

小结

权限表本质上就是 MySQL 访问控制规则的底层存储位置。日常管理中虽然更多是通过 GRANTREVOKE 等语句操作,但理解这些权限表的职责,有助于理解权限系统整体结构。