MySQL 设置存储过程 权限认证
来源:互联网 发布:apache ant 是什么 编辑:程序博客网 时间:2024/09/21 08:56
1、root用户登录创建存储过程并授予helong@localhost执行存储过程权限
mysql -uroot
delimiter //
CREATE PROCEDURE simproc_definer (OUT param1 INT)
SQL SECURITY DEFINER
BEGIN
SELECT COUNT(*) INTO param1 FROM aaa;
END//
CREATE PROCEDURE simproc_invoker (OUT param1 INT)
SQL SECURITY INVOKER
BEGIN
SELECT COUNT(*) INTO param1 FROM aaa;
END//
CREATE PROCEDURE simproc_default (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM aaa;
END//
delimiter ;
grant execute on procedure test.simproc_definer to helong@localhost;
grant execute on procedure test.simproc_invoker to helong@localhost;
grant execute on procedure test.simproc_default to helong@localhost;
2、helong@localhost登录,执行存储过程
mysql -uhelong
(helong:Thu Jan 6 15:02:41 2011)[(none)]> CALL test.simproc_definer(@a1);
Query OK, 0 rows affected (0.00 sec)
(helong:Thu Jan 6 15:02:56 2011)[(none)]> CALL test.simproc_invoker(@a2);
ERROR 1142 (42000): SELECT command denied to user 'helong'@'localhost' for table 'aaa'
(helong:Thu Jan 6 15:02:56 2011)[(none)]> CALL test.simproc_default(@a3);
Query OK, 0 rows affected (0.00 sec)
(helong:zw_75.58:Thu Jan 6 15:02:57 2011)[(none)]> SELECT @a1,@a2,@a3;
+------+------+------+
| @a1 | @a2 | @a3 |
+------+------+------+
| 8 | NULL | 8 |
+------+------+------+
1 row in set (0.00 sec)
3、总结
(1)MySQL存储过程是通过指定SQL SECURITY子句指定执行存储过程的实际用户;
(2)如果SQL SECURITY子句指定为DEFINER,存储过程将使用存储过程的DEFINER执行存储过程,
验证调用存储过程的用户是否具有存储过程的execute权限和DEFINER用户是否具有存储过程引用的相关对象的权限;
(3)如果SQL SECURITY子句指定为INVOKER,那么MySQL将使用当前调用存储过程的用户执行此过程,
并验证用户是否具有存储过程的execute权限和存储过程引用的相关对象的权限;
(4)如果不显示的指定SQL SECURITY子句,MySQL默认将以DEFINER执行存储过程。
- MySQL 设置存储过程 权限认证
- 设置存储过程权限
- MySQL存储过程权限
- mysql 存储过程权限
- mysql 语句记录(定时器,存储过程,索引,触发器,权限设置)
- MySQL中创建存储过程时通过DEFINER和SQL SECURITY设置访问权限
- mysql 创建存储过程权限问题
- MySQL 用户执行存储过程的权限
- MySQL 用户执行存储过程的权限
- mysql执行存储过程权限的问题
- mysql存储过程中定义权限
- MySQL用户执行存储过程的权限
- shiro权限认证过程
- Mybatics3.0设置mysql存储过程配置
- mysql设置用户名密码,存储过程,触发器
- java调用mysql存储过程报权限方面错误
- [MySQL] 存储过程、函数、触发器和视图的权限检查
- [MySQL] 存储过程、函数、触发器和视图的权限检查
- 【框架-MFC】CMFCPropertyGridCtrl(chenlu1):属性值改变事件的触发与处理
- 理解Blizzard Hash
- 网络并发 工作经验总结(2W/S级别吞吐)
- node-formidable详解
- struts2中i18n国际化在chrome下不显示中文
- MySQL 设置存储过程 权限认证
- 重学C语言
- 图像缩放之双线性插值算法
- 安装Tornado
- import pydot Couldn't import dot_parser, loading of dot files will not be possible.
- 经典排序算法——冒泡排序
- pydot.InvocationException: GraphViz'sexecutables not found
- poj2407-Relatives
- UIView随手指的移动