这个专题主要讲information_schema数据库下的一些表
如无特殊说明数据库版本为MySQL 5.7.26
该表显示一些用户具有的列权限信息,其来源为mysql.columns_priv系统表
有如下栏位
接下来对上面的一些栏位做进一步的介绍
我们可以为指定的表中的一个列赋予权限,可以一次性赋予多个列权限,如
GRANT SELECT (col1), INSERT (col1, col2) ON mydb.mytbl TO 'someuser'@'somehost';
这里我在测试环境中新加入一个权限
我们只赋予coltest用户test数据库中innodb_table两个列的权限,其中只有name列用select权限
create database coltest;
grant all on coltest.* to 'coltest'@'%' identified by '123456' ;
flush privileges;
grant select (name),insert(name,age) on test.innodb_table to coltest@'%' ;
通过上面实验我们可以看出MySQL可以针对列做出权限管控,我们无法用coltest用户对innodb_table 除name列外其他列进行操作
SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES;
这里每个列的权限显示一行
或者
SHOW grants for 'coltest'@'%';
这里所有列的权限显示在一行
https://dev.mysql.com/doc/refman/5.7/en/column-privileges-table.html
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有