快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-17
代码就是错误的:


FETCH PRIOR cursor1 INTO variable1;
FETCH ABSOLUTE 55 cursor1 INTO variable1;

  同时也不允许在已打开游标进行操作的表上执行updates事务,因为游标是(ASENSITIVE)敏感的。因为如果你不阻止update事务,那就不知道结果会变成什么。如果你使用的是InnoDB而不是MyISAM存储引擎的话,结果也会不一样。

Security 安全措施

  摘要
  Privileges (1) CREATE ROUTINE
  Privileges (2) EXECUTE
  Privileges (3) GRANT SHOW ROUTINE?
  Privileges (4) INVOKERS AND DEFINERS

  这里我们要讨论一些关于特权和安全相关的问题。但因为在MySQL安全措施的功能并没有完全,所以我们不会对其进行过多讨论。

1. Privileges CREATE ROUTINE


GRANT CREATE ROUTINE
ON database-name . *
TO user(s)
[WITH GRANT OPTION];

  现在用root就可以了

  在这里要介绍的特权是CREATE ROUTINE,它不仅同其他特权一样可以创建存储过程和函数,还可以创建视图和表。Root用户拥有这种特权,同时还有ALTER ROUTINE特权。

2. Privileges EXECUTE


GRANT EXECUTE ON p TO peter
[WITH GRANT OPTION];

  上面的特权是决定你是否可以使用或执行存储过程的特权,过程创建者默认拥有这个特权。

3. Privileges SHOW ROUTINE?


GRANT SHOW ROUTINE ON db6.* TO joey
[WITH GRANT OPTION];

  因为我们已经有控制视图的特权了:GRANT SHOW VIEW。所以在这个基础上,为了保证兼容,日后可能会添加GRANT SHOW ROUTINE特权。这样做是不太符合标准的,在写本书的时候,MySQL还没实现这个功能。

4. Privileges Invokers and Definers 特权调用者和定义者


CREATE PROCEDURE p26 ()
SQL SECURITY INVOKER
SELECT COUNT(*) FROM t //
CREATE PROCEDURE p27 ()
SQL SECURITY DEFINER
SELECT COUNT(*) FROM t //
GRANT INSERT ON db5.* TO peter; //

  现在我们测试一下SQL SECURITY子句吧。Security是我们前面提到的程序特性的一部分。你root用户,将插入权赋给了peter。然后使用peter登陆进行新的工作,我们看peter可以怎么使用存储过程,注意:peter没有对表t的select权力,只有root用户有。

5. Privileges Invokers and Definers


/* Logged on with current_user = peter */使用帐户peter登陆

mysql> CALL p26();
ERROR 1142 (42000): select command denied to user
''peter''@''localhost'' for table ''t''
mysql> CALL p27();
+----------+
| COUNT(*) |
+-------

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号