• 环境基于Centos7.6

1.columns_priv表作用

用户权限管理,针对表的字段、级别、授权进行操作。

2.columns_priv表查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#对test用户school库下面的sc表的sno,cno字段授予select权限,score字段授予update权限

mysql> grant select(sno,cno),update(score) on school.sc to 'test'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> select * from mysql.columns_priv;
+-----------+--------+------+------------+-------------+---------------------+-------------+
| Host | Db | User | Table_name | Column_name | Timestamp | Column_priv |
+-----------+--------+------+------------+-------------+---------------------+-------------+
| localhost | school | test | sc | sno | 0000-00-00 00:00:00 | Select |
| localhost | school | test | sc | cno | 0000-00-00 00:00:00 | Select |
| localhost | school | test | sc | score | 0000-00-00 00:00:00 | Update |
+-----------+--------+------+------------+-------------+---------------------+-------------+
3 rows in set (0.00 sec)

3.columns_priv详解

columns_priv 表结构如下表所示:

字段名 字段类型 是否为空 默认值 说明
Host char(60) NO 主机
Db char(64) NO 数据库名
User char(32) NO 用户名
Table_name char(64) NO 表名
Column_name char(64) NO 数据列名称,用来指定对哪些数据列具有操作权限
Timestamp timestamp NO CURRENT_TIMESTAMP 修改该记录的时间
Column_priv set(‘Select’,’Insert’,’Update’,’References’) NO 表示对表中的列的操作权限,包括 Select、Insert、Update 和 References