1、创建视图


  1. CREATE
  2. VIEW `NewView`AS
  3. SELECT
  4. `user`.USER_ID,
  5. `user`.USER_NAME,
  6. department.DEPT_ID,
  7. department.DEPT_NAME
  8. FROM
  9. `user` ,
  10. department
  11. WHERE
  12. `user`.DEPT_ID = department.DEPT_ID ;

2、修改视图


  1. ALTER
  2. ALGORITHM=UNDEFINED
  3. DEFINER=`root`@`127.0.0.1`
  4. SQL SECURITY DEFINER
  5. VIEW `dept_user` AS
  6. select `user`.`USER_ID` AS `USER_ID`,`user`.`USER_NAME` AS `USER_NAME`,`department`.`DEPT_ID` AS `DEPT_ID`,`department`.`DEPT_NAME` AS `DEPT_NAME`
  7. from (`user` join `department`)
  8. where (`user`.`DEPT_ID` = `department`.`DEPT_ID`)
  9. ORDER BY
  10. department.DEPT_NO ASC ;

3、 给视图赋权


  1. GRANT SELECT, SHOW VIEW ON `NewView`.* TO 'View'@'192.168.%' ;
  2. flush privileges;

修改后用户还是不能查看,登陆root 也不能查看。

百度得了下面解决办法:

登陆工具-视图-设计视图-高级选项, 修改定义者为需要权限用户 或  修改安全性Definer 为invoker

原理:

definer和invoker的区别

在创建视图或者是存储过程的时候,是需要定义安全验证方式的(也就是安全性SQL SECURITY),其值可以为definer或invoker,表示在执行过程中,使用谁的权限来执行。

definer:由definer(定义者)指定的用户的权限来执行

invoker:由调用这个视图(存储过程)的用户的权限来执行

4、修复视图

在MySQL中当一个视图所依赖的的表有变化时,打开或修改视图会出现如下面的错误信息:

1356 - View 'database.view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them.

解决:

从MySQL的information_schema中的视图表View中,用下面的语句修复视图,如:

select VIEW_DEFINITION from information_schema.views where TABLE_SCHEMA='database' and TABLE_NAME='view'

原文地址:https://blog.csdn.net/zhangxueleishamo/article/details/83056598

MySQL视图 definer & invoker 权限的更多相关文章

  1. 深入解析MySQL视图view

    阅读目录---深入解析MySQL视图view 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌 ...

  2. MySQL视图view/存储过程和函数的使用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...

  3. MySQL 视图、触发器、函数、存储过程

    1. 视图 1.1 什么是视图 通俗来讲,视图就是一条 select 语句执行后返回的结果集.所有我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上. 1.2 视图的特性 视图是对若干张基 ...

  4. MySQL视图概述

    1.介绍 在传统关系型数据库里,视图有时也被称作虚表,是基于特定SQL结果集的虚拟数据表.在有些场合会变得很方便,例如:原有系统重构,旧的数据表A和B已经被拆分和合并到数据表C.D.F里面,为了实现平 ...

  5. 推荐收藏 —— MySQL视图详细介绍

    前言:  在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会 ...

  6. 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器

    @ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...

  7. MySQL视图详细介绍

    前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会详 ...

  8. Mysql 视图笔记

    1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表.视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以查看到数据表的全部数据),使 ...

  9. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

随机推荐

  1. 【OI】拓扑排序

    拓扑排序 首先要求图为DAG 算法:首先将度为1的节点加入队列每次取出队首点u,在图中删去和u相邻的边继续将度数为1的点加入队列 到了最后, 如果没有度数为1的点,则图不是DAG 通过拓扑排序可以给D ...

  2. fedora 安装 pidgin-lwqq

    因为 腾讯自带的linux for  qq 已经无法登陆,于是详尽各种办法在fedora 上安装 qq ,但均以失败高中.于是使用了几天web qq 但最终无法忍受,于是有研究起来了 pidgin-l ...

  3. 从url输入网址后发生什么

    从url输入网址后发生什么

  4. php 获取客户端的ip、地理信息、浏览器信息、本地真实ip

    转自:http://www.blhere.com/948.html 这是非常实用的php常用类.获取客户端的ip.地理信息.浏览器信息.本地真实ip 1234567891011121314151617 ...

  5. uml图的五种关系 标签: uml 2016-12-18 21:47 221人阅读 评论(25) 收藏

    统一建模语言 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所 ...

  6. Java面向对象----继承概念,super关键字

    继承概念: 继承需要符合的关系  is-a  , 父类通用更抽象,子类更特殊更具体 类之间的关系 继承体现 组合体现 实现接口体现 继承的意义 代码重用 体现不同抽象层次 extends关键字 Sup ...

  7. 在JS中模拟表单的post提交,进行页面的跳转

    原文链接:https://blog.csdn.net/jal517486222/article/details/83147761 /* *功能: 模拟form表单的提交 *参数: URL 跳转地址 P ...

  8. LightOJ 1370 Bi-shoe and Phi-shoe【欧拉函数 && 质数】

    题目链接: http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1370 题意: 给定值,求满足欧拉值大于等于这个 ...

  9. 创建我的flask第一个应用(一)

    本地python版本 (venv) dongge@dongge-PC:/data/webroot$ python --version Python 3.6.5 创建flask命令 $mkdir myp ...

  10. mysql 中 DATE_ADD函数和 DATE_SUB函数用法

    mysql 中 DATE_ADD(date,INTERVAL expr type) 和 DATE_SUB(date,INTERVAL expr type) 这些函数执行日期运算. date 是一个 D ...