MySQL视图 definer & invoker 权限
1、创建视图
-
CREATE
-
VIEW `NewView`AS
-
SELECT
-
`user`.USER_ID,
-
`user`.USER_NAME,
-
department.DEPT_ID,
-
department.DEPT_NAME
-
FROM
-
`user` ,
-
department
-
WHERE
-
`user`.DEPT_ID = department.DEPT_ID ;
2、修改视图
-
ALTER
-
ALGORITHM=UNDEFINED
-
DEFINER=`root`@`127.0.0.1`
-
SQL SECURITY DEFINER
-
VIEW `dept_user` AS
-
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`
-
from (`user` join `department`)
-
where (`user`.`DEPT_ID` = `department`.`DEPT_ID`)
-
ORDER BY
-
department.DEPT_NO ASC ;
3、 给视图赋权
-
GRANT SELECT, SHOW VIEW ON `NewView`.* TO 'View'@'192.168.%' ;
-
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 权限的更多相关文章
- 深入解析MySQL视图view
阅读目录---深入解析MySQL视图view 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌 ...
- MySQL视图view/存储过程和函数的使用
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- MySQL 视图、触发器、函数、存储过程
1. 视图 1.1 什么是视图 通俗来讲,视图就是一条 select 语句执行后返回的结果集.所有我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上. 1.2 视图的特性 视图是对若干张基 ...
- MySQL视图概述
1.介绍 在传统关系型数据库里,视图有时也被称作虚表,是基于特定SQL结果集的虚拟数据表.在有些场合会变得很方便,例如:原有系统重构,旧的数据表A和B已经被拆分和合并到数据表C.D.F里面,为了实现平 ...
- 推荐收藏 —— MySQL视图详细介绍
前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会 ...
- 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...
- MySQL视图详细介绍
前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会详 ...
- Mysql 视图笔记
1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚拟存在的表.视图就像一个窗口(数据展示的窗口),通过这个窗口,可以看到系统专门提供的数据(也可以查看到数据表的全部数据),使 ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
随机推荐
- Kubernetes Ingress 日志分析与监控的最佳实践
摘要: Ingress主要提供HTTP层(7层)路由功能,是目前K8s中HTTP/HTTPS服务的主流暴露方式.为简化广大用户对于Ingress日志分析与监控的门槛,阿里云容器服务和日志服务将Ingr ...
- QLabel添加Click信号
使用自定义label来实现此功能 其他控件可参照此例. #include "customerqlabel.h" CustomerQlabel::CustomerQlabel(QWi ...
- Directx11教程(59) tessellation学习(1)
原文:Directx11教程(59) tessellation学习(1) 在D3D11管线中,新增加了3个stage, Hull shader, Tessellator, Domain s ...
- Directx11教程37 纹理映射(7)
原文:Directx11教程37 纹理映射(7) 本章是在教程35.36的基础上来实现一个光照纹理结合的程序,就是把场景中旋转的cube加上纹理. lighttex.vs中顶点的结构现在 ...
- jQuery动态加载动画spin.js
在线演示 本地下载
- Effective Modern C++:02auto
05:优先使用auto,而非显示类型声明 显示类型声明有下面一些缺点: int x; //未初始化,或者初始化为0,视语境而定 template<typename It> void dwi ...
- Apache CarbonData1.3简介
CarbonData是一种高性能大数据存储方案,支持快速过滤查找和即席OLAP分析,已在20+企业生产环境上部署应用,其中最大的单一集群数据规模达到几万亿.针对当前大数据领域分析场景需求各异而导致的存 ...
- LeedCode OJ --- Binary Tree Inorder Traversal
点击打开题目链接 今天只是写了递归的版本,因为还没想好怎么用迭代来实现,可以写的过程中,有一点是有疑问的,虽然我的代码可以AC. 问题是:主调函数是可以使用子函数中返回的在子函数中定义的vector. ...
- JavaScript中常用的几种类型检测方法
javascript中类型检测方法有很多: typeof instanceof Object.prototype.toString constructor duck type 1.typeof 最常见 ...
- framework7 上拉加载一些ajax问题
1.请求第一组数据后如果不能产生上拉进度条,则无法进行上拉加载. 解决办法:首次加载的数据量设置合理即可. 2.同一组数据请求多次,原因是异步刷新时间差,请求参数未更新,多次触发了上拉加载. 解决办法 ...