`

关于mysql存储过程的definer的问题

阅读更多

由于对mysql了解不够透彻,导致对definer问题查了好久才解决问题
记录自己的一些理解!
问题描述:
在数据库写,为一个表写了一个触发器,此触发器调用一个存储过程;由公司写的一个c程序自动往该表写入数据,通过触发器转换成业务相关数据;同过root@localhost连接数据库,但提示192.168.2.%不存在
问题查找:
登录数据库,show procedure status\G 发现procedure的definer都是root@192.168.2.%
问题解决:
方法一:修改存储过程的definer
       update mysql.proc set definer='root@localhost' where db='db_name';
方法二:修改sql security
       sql secuirty的值决定了调用存储过程的方式,取值 :definer或者invoker
       definer:在执行存储过程前验证definer对应的用户如:root@192.168.2.%是否存在,以及是否具有执行存储过程的权限,若没有则报错
        invoker:在执行存储过程时判断inovker即调用该存储过程的用户是否有相应权限,若没有则报错。
       修改语法:
        alter procedure pro_name sql security invoker;

ps: 在创建时指定sql security 
    create procedure pro_name(params....)
    sql security definer|invoker
    begin
     .....
    end;

分享到:
评论

相关推荐

    使用Oracle作为中间件编写存储过程,实现Sql Server到MySQL的数据同步

    本案例中,我们将讨论如何使用Oracle作为中间件,通过编写存储过程实现Sql Server到MySQL的数据同步,以此解决不同数据库系统间的数据交换问题。 首先,我们要理解为什么要使用Oracle作为中间件。在甲方公司的ERP、...

    mysql_bakup_tool.zip_mysql备份_tool

    在这里,我们可以找到关于如何安装、配置和运行这个备份工具的指导,以及可能遇到的问题和解决方案。 `templates` 文件夹很可能包含了HTML模板,这些模板定义了用户界面的布局和样式。通过分析这些模板,我们可以...

    Kanboard配置mysql和MariaDB

    以下是关于如何配置Kanboard与MySQL或MariaDB集成的详细步骤和相关知识点。 首先,确保你的环境满足以下要求: 1. MySQL版本需至少为5.6,或者使用MariaDB版本10及以上。 2. PHP必须安装了pdo_mysql扩展,这是连接...

    MySQL与C语言链接

    在实际开发过程中,还需要注意对用户输入的数据进行严格的校验,避免SQL注入等安全问题。此外,还需要考虑如何优化查询效率,比如使用索引、合理设计表结构等方法来提高系统的性能。 通过上述分析可以看出,将MySQL...

    php-mysql工具类

    这个工具类采用了设计模式中的单例模式来确保在整个应用程序中只有一个数据库连接实例,从而优化资源使用并避免并发问题。 首先,我们来看`mysqlUtil.php`,这个文件很可能包含了我们的MySQL工具类。在PHP中,一个...

    php利用mysql保存session的实现思路及示例代码.docx

    为了使PHP能够使用MySQL存储会话数据,我们需要重写几个内置的会话处理函数,即`session_set_save_handler()`。 - **open()**:此函数在打开会话时调用,返回值总是`true`,因为我们的实现不依赖于任何外部资源。 -...

    php操作mysql查询并返回数组封装函数源码

    描述中提到,我们首先需要创建一个类,这里以`(mysql)`为占位符,实际可能是`Mysql`或类似的命名,表示一个用于数据库操作的类。在PHP文件中,通过`$obj = new Mysql;`实例化这个类,然后调用`$result = $obj->query...

    PHP + MYSQL 综合开发 2

    7. **MySQL**: 虽然压缩包文件没有直接提及MySQL,但在PHP开发中,MySQL通常用于存储和检索数据。PHP通过MySQLi或PDO扩展与MySQL数据库进行交互,执行SQL查询,插入、更新和删除数据,以及处理结果集。 8. **PHP与...

    PHP+Mysql开发入门

    - **常量定义**:使用`define()`函数。 ##### 3.2 PHP数据类型 - **标量类型**:整型、浮点型、布尔型、字符串。 - **复合类型**:数组、对象。 - **特殊类型**:资源、NULL。 ##### 3.3 数据类型举例 - **整型**...

    mysql数据库乱码之保存越南文乱码解决方法

    define("MYSQL_ENCODE", "UTF8"); mysql_query('SET NAMES ' . MYSQL_ENCODE, $conn) or die('字符集设置错误'.mysql_error()); ``` 然而,仅仅设置连接的字符集并不足以解决问题。当数据插入到数据库时,如果对应...

    用mysql数据库实现的C++图书管理系统.docx

    文档提到,该系统既可以通过本地文件存储数据,也可以通过MySQL数据库存储数据。这表明该系统具有一定的灵活性和扩展性。 综上所述,这是一个相对完整的C++图书管理系统设计案例,涉及到了基本的数据结构、文件操作...

    Mac环境下php操作mysql数据库的方法分享

    这个过程包括使用PHP打开通向MySQL数据库的连接,发送查询,由MySQL服务器处理并返回结果。之后PHP引擎将结果格式化为HTML格式并输出,最终通过Web服务器发送到用户的Web浏览器。 MySQL数据库的基本数据类型包括...

    修改Innodb的数据页大小以优化MySQL的方法

    在MySQL数据库系统中,InnoDB存储引擎是最常用的数据引擎之一,尤其因其事务处理能力和行级锁定机制而备受青睐。然而,InnoDB的数据页大小默认为16KB,这是一个固定值,不能通过配置文件直接更改。这可能会在某些...

    Navicat premium12

    也是navicat premium软件推出的最新版本,能够支持单一程序同时连接到MySQL、MariaDB、SQL Server、SQLite、Oracle和PostgreSQL等数据库,可以满足现今数据库管理系统的使用功能,包括存储过程、事件、触发器、函数...

    MySQL的C语言API接口

    - `mysql_errno()` 和 `mysql_error()` 分别用于获取错误代码和错误信息,帮助诊断问题。 示例代码: ```c #include #include #include #include <mysql/mysql.h> #define MAX_COLUMN_LEN 32 int main(int ...

    mysql常用语法

    define('STRC', 'Key'); $pw = "123456"; $pw .= STRC; $mpw = md5($pw); $okpw = substr($mpw, 5, 20); ``` 以上是MySQL常用语法的一些关键知识点,包括了查询操作、级联更新与删除以及表结构定义等方面的...

Global site tag (gtag.js) - Google Analytics