-
Notifications
You must be signed in to change notification settings - Fork 111
columns_priv
xiaoboluo768 edited this page Jun 7, 2020
·
2 revisions
- 该表提供查询列级别权限信息, 与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表
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!