科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道MySQL 5.0新特性教程 存储过程:第二讲

MySQL 5.0新特性教程 存储过程:第二讲

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

什么样的SQL语句在Mysql存储过程中才是合法的呢?你可以创建一个包含INSERT, UPDATE,DELETE, SELECT……

作者:佚名 来源:天极论坛整理 2007年10月12日

关键字: MySQL

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共8页)

下一个子句是SQL SECURITY,可以定义为SQL SECURITY DEFINERSQL SECURITY INVOKER
  这就进入了权限控制的领域了,当然我们在后面将会有测试权限的例子。

以下是引用片段:
SQL SECURITY DEFINER

   意味着在调用时检查创建过程用户的权限(另一个选项是SQLSECURITY INVOKER)。
  现在而言,使用

SQL SECURITY DEFINER

  指令告诉MySQL服务器检查创建过程的用户就可以了,当过程已经被调用,就不检查执行调用过程的用户了。而另一个选项(INVOKER)则是告诉服务器在这一步仍然要检查调用者的权限。
  5.

CREATE PROCEDURE p2 ()
LANGUAGE SQL
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT 'A Procedure' <--
SELECT CURRENT_DATE, RAND() FROM t //

  COMMENT 'A procedure'
  是一个可选的注释说明。

 最后,注释子句会跟过程定义存储在一起。这个没有固定的标准,我在文中会指出没有固定标准的语句,不过幸运的是这些在我们标准的SQL中很少。
  6.

CREATE PROCEDURE p2 ()
LANGUAGE SQL
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
SELECT CURRENT_DATE, RAND() FROM t //

  上面过程跟下面语句是等效的:

CREATE PROCEDURE p2 ()
SELECT CURRENT_DATE, RAND() FROM t //

  特征子句也有默认值,如果省略了就相当于:

LANGUAGE SQL NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT ''

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章