MySQL列权限管理讲义

  

 <代码>,,,,,,MySQL是由列级别权限存在的。这也体现了MySQL高级特性,实现了限制用户对表上特定列的访问权限。
  ,,,,,,一般都是实现对表级别不具备访问权限,但是对某些列有访问权限。当然也存在其他情形。 

1 #列权限相关的字典表:

 <代码> (root@localhost) (mysql)比;desc columns_priv;
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  |字段,,,|类型,,,,,,,,,,,,,,,,,,,,关键零| | |违约,,,,,|额外的,,,,,,,,,,,|
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  |主机,,,| char(60)大敌;,,,,,,,,,,,,,,,,,|不,革命制度党(PRI) | |,,,,,,,,,|,,,,,,,,,,,,,,|
  | Db,,,,,|字符(64),,,,,,,,,,,,,,,,,|不,革命制度党(PRI) | |,,,,,,,,,|,,,,,,,,,,,,,,|
  |用户,,,,| char (16),,,,,,,,,,,,,,,,,|不,革命制度党(PRI) | |,,,,,,,,,|,,,,,,,,,,,,,,|
  | Table_name, | char (64),,,,,,,,,,,,,,,,,,|不,革命制度党(PRI) | |,,,,,,,,,|,,,,,,,,,,,,,,|
  | Column_name | char (64),,,,,,,,,,,,,,,,,,|不,革命制度党(PRI) | |,,,,,,,,,|,,,,,,,,,,,,,,|
  |时间戳,|时间戳,,,,,,,,,,,,,,,,,|不大敌;|,,| CURRENT_TIMESTAMP | alt=" MySQL列权限管理讲义"> 

 <代码> (test1@localhost) [sample2]比;更新smp集名称=& # 39;bbb # 39;;
  错误1142(42000):更新命令否认用户& # 39;test1 # 39; @ # 39; localhost # 39;对于表& # 39;smp # 39;
  (test1@localhost) [sample2]比; 
 <代码>,,,,,,对名字列授权更新: 
 <代码> (root@localhost) (mysql)比;授予对sample2更新(名字)。smp test1;
  查询好,0行影响(0.00秒) 
 <代码>,,,,,,再次尝试更新,名字列,更新成功。 
 <代码> (test1@localhost) [sample2]比;更新smp集名称=& # 39;bbb # 39;;
  查询好了,1行影响(0.00秒)
  行匹配:1,改变:1,警告:0  
 <代码>,,,,,,验证更新,id列,可以预见的失败: 
 <代码> (test1@localhost) [sample2]比;更新smp组id=2;
  错误1143(42000):更新命令否认用户& # 39;test1 # 39; @ # 39; localhost # 39;列& # 39;id # 39;表& # 39;smp # 39;  

3 #权限的查询:
4个方式,一个是显示拨款,另一个是跑sql查询字典表,DBA可以查询mysql。columns_priv,普通用户可以查询information_schema.COLUMN_PRIVILEGES。两者有细微的差别,但主要列一样,第四种方式是查询mysql。tables_priv .

 <代码> # 1,直接显示赠款
  (root@localhost) (mysql)比;显示test1拨款;
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  |拨款test1@ %,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  | *格兰特使用。* & # 39;test1 # 39; @ # 39; % & # 39;确认密码& # 39;* CFA887C680E792C2DCF622D56FB809E3F8BE63CC& # 39;|
  |格兰特选择“sample2”。* & # 39;test1 # 39; @ # 39; % & # 39;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,|
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

MySQL列权限管理讲义