mysql 视图 安全性(  mysql 表能读,但是视图不能读问题 )_sql

 

安全性: 有两个选项

  Definer:定义者 , 定义者有什么权限 ,访问视图的人就有什么权限

  Invoker: 调用者  ,根据调用这个视图的当前用户来决定 有什么权限

 

 

采坑: 项目中有个复杂查询。1050 多行格式化后的视图sql。创建视图默认的安全性是 Definer ,也就是定义者有什么权限,访问者就有什么权限,结果上生成的时运维,使用了另一个 没有读视图权限的账号导入了视图(或者说导入以后这个导入账号的读视图权限被回收了),然后生产的 账号可以 读写表,但是无法 读取视图。

 

 

 

mysql 视图 安全性(  mysql 表能读,但是视图不能读问题 )_sql_02

 

上图的异常就是视图不能读抛出的异常。