zoukankan      html  css  js  c++  java
  • mysql存储过程执行权限问题

    tags: mysql  PROCEDURE 存储过程 definer SECURITY 权限

    以下存储过程,限定了DEFINER为root,也就是root之外的账户是无法调用这个存储过程的。

     

    1
    2
    3
    4
    5
    6
    CREATE DEFINER=`root`@`%` PROCEDURE `ProcName`(
            IN param  INT(16)
        )
    BEGIN
    ...
    END

    在数据库的mysql库,proc表中,可以查看到存储过程的信息。

    其中有一个列名为definer,就记录了root@%。

    注意到其中有一项列名为security_type,默认值为DEFINER。

    也就是设置安全类型为DEFINER列中所定义得值。

    security_type的值还可以设置为INVOKER,可以让所有账户调用该存储过程。

    为了实现以上效果,我们可以在存错过程中添加一句话:

    SQL SECURITY INVOKER 。

    添加后格式如下:

    1
    2
    3
    4
    5
    6
    7
    CREATE DEFINER=`root`@`%` PROCEDURE `ProcName`(
            IN param  INT(16)
        )
        SQL SECURITY INVOKER
    BEGIN
    ...
    END
  • 相关阅读:
    07.28周四
    07.27 约束自己
    07.26
    07.25新的一周,踏实,努力
    07.21 智能充电开发
    07.20小笔记
    07.20 html5的适配flexible
    07.19 Linux命令 cd
    SpringBoot简介和Banner
    webpack生产环境配置
  • 原文地址:https://www.cnblogs.com/solohac/p/4154179.html
Copyright © 2011-2022 走看看