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
  • 相关阅读:
    了解WP的传感器
    载入条LoadingBar
    能分组的GridView
    ASP.NET MVC的过滤器
    ASP.NET的路由
    自己绘制的仪表盘
    可拖拽的ListBox
    自己绘制的滑块条
    利用mciSendString播放音频
    mis导入器的加强版——vdproj文件资源浏览器
  • 原文地址:https://www.cnblogs.com/solohac/p/4154179.html
Copyright © 2011-2022 走看看