columns_priv - xiaoboluo768/mysql-system-schema GitHub Wiki

  • 该表提供查询列级别权限信息, 与db表类似,但粒度更细,columns_priv表中记录的权限信息代表着用户可以使用这些权限来访问某个表的指定列
  • 表结构定义
CREATE TABLE `columns_priv` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
  PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges';
  • 表字段含义
  • host、db、user、Table_name、Column_name五个列官方称为范围列,可以理解为这两个字段构成了允许访问的客户端范围以及客户端可以访问的列对象资源范围
  • Column_priv官方称为权限列,与tables_priv表中的Column_priv列含义相同,也是一个集合,对应列级别的'Select','Insert','Update','References'权限
  • 其他字段
* Timestamp:与tables_priv表中的Timestamp列含义相同
  • 表记录内容示例
root@localhost : mysql 12:55:13> select * from columns_priv;
+------+--------+------+------------+-------------+---------------------+----------------------+
| Host | Db     | User | Table_name | Column_name | Timestamp           | Column_priv          |
+------+--------+------+------------+-------------+---------------------+----------------------+
| %    | sbtest | xx   | sbtest1    | id          | 0000-00-00 00:00:00 | Select,Insert,Update |
+------+--------+------+------------+-------------+---------------------+----------------------+
1 row in set (0.00 sec)

上一篇:tables_priv表 |下一篇:procs_priv表

⚠️ **GitHub.com Fallback** ⚠️