暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL information_schema详解 COLUMN_PRIVILEGES

宅必备 2019-11-05
221

 

往期专题请查看www.zhaibibei.cn
这是一个坚持Oracle,Python,MySQL原创内容的公众号


这个专题主要讲information_schema数据库下的一些表

如无特殊说明数据库版本为MySQL 5.7.26

1. COLUMNS

该表显示一些用户具有的列权限信息,其来源为mysql.columns_priv系统表

有如下栏位

  • GRANTEE 权限授予的用户的名称,格式为'user_name'@'host_name'

  • TABLE_CATALOG 包含列的表所属的目录的名称,该值总是def

  • TABLE_SCHEMA 包含列的表所属的数据库的名称

  • TABLE_NAME 包含列的表名

  • COLUMN_NAME 列名

  • PRIVILEGE_TYPE 被授予的权限名称,取值可以为任何可以在列级别上的权限

  • IS_GRANTABLE 如果为YES,代表该用户拥有GRANT OPTION权限

接下来对上面的一些栏位做进一步的介绍

1.1 列的权限

我们可以为指定的表中的一个列赋予权限,可以一次性赋予多个列权限,如

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列外其他列进行操作



2. 实际截图

SELECT * FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES;

复制



这里每个列的权限显示一行

或者

SHOW grants for 'coltest'@'%';

复制



这里所有列的权限显示在一行

3. 参考链接

https://dev.mysql.com/doc/refman/5.7/en/column-privileges-table.html


可点击阅读原文获得更好的阅读体验,推荐在PC端阅读

也可在公众站内搜索中回复 information_schema 搜索相关内容

或直接打开个人网页搜索


http://www.zhaibibei.cn


往期专题包括:


  • Python 自动化运维

  • MySQL  安装

  • mysqldump命令详解

  • mysqlbinlog命令详解

  • xtrabackup工具详解

  • 打造属于自己的监控系统

  • Python爬虫基础

  • Oracle awr报告全解析

  • Oracle ASM全解析

  • Oracle Data Guard全解析

  • Oracle ClusterWare全解析

  • Oracle常见参数解析

  • Oracle常见故障处理

  • Oracle SQL优化案例


觉得文章不错的欢迎关注,转发,收藏,点赞~

文章转载自宅必备,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论