MySQL can also perform GRANTs and REVOKEs on column privileges.
In fact, the mysql.columns_priv and information_schema.COLUMN_PRIVILEGES contain those privileges at that level.
mysql> show create table mysql.columns_priv\G
************* 1. row *************
Table: columns_priv
Create Table: CREATE TABLE columns_priv (
Host char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
Db char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
User char(16) 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'
mysql> show create table information_schema.column_privileges\G
************* 1. row *************
Table: COLUMN_PRIVILEGES
Create Table: CREATE TEMPORARY TABLE COLUMN_PRIVILEGES (
GRANTEE varchar(81) NOT NULL DEFAULT '',
TABLE_CATALOG varchar(512) NOT NULL DEFAULT '',
TABLE_SCHEMA varchar(64) NOT NULL DEFAULT '',
TABLE_NAME varchar(64) NOT NULL DEFAULT '',
COLUMN_NAME varchar(64) NOT NULL DEFAULT '',
PRIVILEGE_TYPE varchar(64) NOT NULL DEFAULT '',
IS_GRANTABLE varchar(3) NOT NULL DEFAULT ''
) ENGINE=MEMORY DEFAULT CHARSET=utf8