首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

一个关于Definer和Invoker权限问题

需求是在tag库执行一个处理,使得tag中所有用户seqnextval与src库中一致。 2....相差1000以上,并在tag获取create seq语句,然后用src库nextval值替换,并在src库按src库nextval重建seq。...问题出在,我没有sys用户或者dba权限,使用是一个user1用户,过程建在user1,但程序需要处理所有用户seq,我写过程是给dba用,他能用sys执行。...定义者(Definer)-指的是编译存储对象拥有者,包括包、存储过程、函数、触发器和视图。 调用者(Invoker)-指当前会话中生效schema,不一定就是当前登录用户。...对于Definer和Invoker含义要理解,Definer权限比较静态,Invoker权限则相对动态,通过procedures视图AUTHID字段,可以了解对象,属于定义者还是调用者权限。

85320

创建视图与函数,你注意过 DEFINER 是啥意思吗

前言: 在 MySQL 数据库,在创建视图及函数时候,你有注意过 definer 选项吗?在迁移视图或函数后是否有过报错情况,这些其实都可能和 definer 有关系。...本篇文章主要介绍下 MySQL definer 含义及作用。...MySQL,创建视图(view)、函数(function)、存储过程(procedure)、触发器(trigger)、事件(event)时,都可以指定 DEFINER = user 选项,即指定此对象定义者是谁...对于视图、函数及存储过程,还可以指定 SQL SECURITY 属性,其值可以为 DEFINER(定义者) 或 INVOKER(调用者),表示在执行过程,使用谁权限来执行。...其值为 DEFINER 时,数据库必须存在 DEFINER 指定定义者用户,并且该定义者用户拥有对应操作权限及引用相关对象权限,执行者只需拥有调用权限就能成功执行。

2.2K31

记录一下今天MySQL故障

关于definer和invoker解释 创建存储过程时候可以指定 SQL SECURITY属性,设置为 DEFINER 或者INVOKER,用来奉告mysql在执行存储过程时候,,是以DEFINER...默认情况下,使用DEFINER方式,此时调用存储过程用户必须有存储过程EXECUTE权限,并且DEFINER指定用户必须是在mysql.user表存在用户。...DEFINER模式下,默认DEFINER=CURRENT_USER,在存储过程执行时,mysql会检查DEFINER定义用户'user_name'@'host_name'权限; INVOKER模式下...修改function、proceduredefiner select definer from mysql.proc; -- 函数、存储过程 update mysql.proc set definer...update mysql.EVENT set definer=' user@localhost '; 修改viewdefiner 相比function修改麻烦点: select DEFINER from

63710

mysql迁移存储过程函数视图存在问题

一般情况下,我们使用逻辑导出导入迁移存储过程、函数、视图存在如下问题: 如果环境用户信息没有迁移过去,在创建和调用中会存在问题 创建时用户没有相应权限: ERROR 1227 (42000):...DEFINER 访问安全有两种 SQL SECURITY DEFINER : 调用阶段根据调用者权限进行判断是否可以调用,执行阶段根据DEFINER账户权限判断操作是否可以继续执行。...SQL SECURITY INVOKER:调用阶段和执行阶段都根据调用者权限进行判断操作是否可以继续 以上错误是我们在用myqldump导出时: /usr/local/mysql/bin/mysqldump...`registrar` AS `registrar` 我们解决这个问题有如下方法 1.在导出是把过程,视图,函数DEFINER=替换掉可以sed命令 /usr/local/mysql/bin/mysqldump...10.1.1.201:3321 ssl JS > util.loadDump('/tmp/opendump') 导入后查询: mysql> select table_name,definer,SECURITY_TYPE

1.5K51

MySQL8.0 show create view BUG解析

1 AS `1` 这里创建了一个最简单视图,仅仅执行select 1,然后顺便给大家复习一下视图definer定义: MySQL创建视图等其他对象时有两个选项:definer和invoker...DEFINER 表示按定义者拥有的权限来执行;INVOKER 表示用调用者权限来执行。默认情况下,系统指定为DEFINER。...接着我们可以从源码找出原因(启动Vscode!)...,调试后发现acl_getroot函数在 build/sql/auth/sql_auth_cache.cc代码里,用处是获取用户ROLE权限,然后出现问题是在下面这段代码。...GreatSQL是由万里数据库维护MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用MySQL分支版本。

46420

更改用户host留下

二是更改此存储过程属主,下面给出更改方法并加以验证: # 通过系统表更改存储过程属主 mysql> update mysql.proc set definer= 'testuser@192.168.6...与INVOKER拓展知识 MySQL,创建视图(view)、函数(function)、存储过程(procedure)、触发器(trigger)、事件(event)时,可以指定安全验证方式(也就是SQL...SECURITY)属性,其值可以为DEFINER或INVOKER,表示在执行过程,使用谁权限来执行。...当SQL SECURITY属性为DEFINER时,数据库必须存在DEFINER指定用户,并且该用户拥有对应操作权限及引用相关对象权限,才能成功执行。与当前用户是否有权限无关。...更改用户host请用RENAME USER语句,直接更新mysql.user系统表host属性会使权限丢失。 更改用户host后,要注意此用户下各个对象DEFINER属性。

96910

MySQLJSON

这篇文章主要介绍一下MySQLJSON类型使用,主要参考MySQL手册:https://dev.mysql.com/doc/refman/8.0/en/1....MySQL中使用utf8mb4字符集以及utf8mb4_bin字符序来处理JSON字符串,因此JSON字符串时大小写敏感。...ID;$schema: JSON模式校验标准,应该是这个值保持不变;description: 模式描述;type: 根元素类型,MySQLJSON根元素还可以是数组(array);properties...JSON高级用法前面我们介绍了MySQLJSON类型一些基本操作,MySQL对JSON类型支持还可以有一些更高级玩法,比如关系型数据与JSON数据相互转换,甚至可以把MySQL当做一个文档型数据库来使用...一些思考目前来看,orm对于JSON支持还不是很丰富,而上面的绝大多数篇幅都是mysql客户端操作JSON字段方法,在我们程序通过orm操作JSON字段还不是很方便。

9.8K82

Mysql索引

Unique(唯一索引):索引列必须唯一,但允许有空值,若是组合索引,则列值组合必须保持唯一。 Key(普通索引),是MySQL基本索引类型,允许列中有空值,重复值。...但是对于数据在磁盘等辅助存储设备情况(如:Mysql数据库),红黑树并不适用,因为红黑树相对很高。...图中每个节点称为页,页就是我们上面说磁盘块,在MySQL数据读取基本单位是页,所以我们这里叫做页更符合MySQL索引底层数据结构。...聚簇索引和非聚簇索引 在MysqlB+树索引按照存储方式不同分为聚集索引和非聚集索引。...相关命令 Mysql5.7主从复制配置 Mysql通过binlog恢复数据 Mysql之binlog三种模式 Mysqlbinlog入门介绍

3.2K20

MySQL

MySQL锁 1.1. 数据库引擎 1.2. 锁分类 1.3....参考文章 MySQL锁 数据库引擎 数据库引擎分为MyISAM和InnoDB和其他 不同数据库引擎默认使用锁是不同 MyISAM默认使用是表级别锁,InnoDB默认使用是行级锁 我们在使用时候...此时如果一个事务执行了update user set name="Jack" where age=22,因为age不是索引,那么会自动添加表级锁锁住user表全部数据,那么此时所有的数据在另外一个事务只能查询了...=1(默认设置)时,InnoDB层才能知道MySQL表锁,MySQL Server才能感知InnoDB加行锁,这种情况下,InnoDB才能自动识别涉及表级锁死锁;否则,InnoDB将无法自动检测并处理这种死锁...但是在InnoDB,除单个SQL组成事务外,锁是逐步获得,这就决定了InnoDB发生死锁是可能

1.3K10

MySQL进阶|MySQL事务(二)

引言 上一个章节说了什么是事务,在MySQL数据库如何查询事务,以及哪些存储引擎支持事务。这一章节来说说事务隔离。...上一篇传送:MySQL进阶|MySQL事务(一) 1.1 隔离设计 事务隔离是数据库处理基础之一。...1.2 隔离级别 从MySQL官方网站,我们可以查询到MySQL中有四种隔离级别,他们执行是InnoDB提供 SQL:1992 标准,他们分别是: READ UNCOMMITTED:读未提交。...这是大多数数据库系统默认隔离级别(但不是MySQL默认)。可以避免脏读,但不可 重复读、幻读问题仍然存在。 REPEATABLE READ(default):可重复读。...回滚会结束用户事务,并撤销正在进行所有未提交修改; 「创建保存点」 SAVEPOINT identifier,SAVEPOINT 允许在事务创建一个保存点,一个事务可以有多个 SAVEPOINT

11110
领券