首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql 存储过程权限相干

2012-07-03 
mysql 存储过程权限相关1.修改mysql 存储过程的definer修改mysql.proc表 的definer字段update mysql.proc

mysql 存储过程权限相关
1.修改mysql 存储过程的definer
修改mysql.proc表 的definer字段

update mysql.proc set definer='root@%'where db='servant_591up';UPDATE `mysql`.`proc` SET `definer`='root00@%' WHERE `db`='test' AND `name`='jjjj' AND `type`='PROCEDURE';UPDATE `mysql`.`proc` SET `definer`='wtc_678869@%' WHERE `db`='servant_591up' AND `type`='PROCEDURE';  

2.修改sql security

ALTER PROCEDURE www SQL SECURITY INVOKER ;ALTER PROCEDURE www SQL SECURITY DEFINER ;


(1)MySQL存储过程是通过指定SQL SECURITY子句指定执行存储过程的实际用户;

(2)如果SQL SECURITY子句指定为DEFINER,存储过程将使用存储过程的DEFINER执行存储过程,验证调用存储过程的用户是否具有存储过程的execute权限和DEFINER用户是否具有存储过程引用的相关对象的权限;

(3)如果SQL SECURITY子句指定为INVOKER,那么MySQL将使用当前调用存储过程的用户执行此过程,并验证用户是否具有存储过程的execute权限和存储过程引用的相关对象的权限;

(4)如果不显示的指定SQL SECURITY子句,MySQL默认将以DEFINER执行存储过程。

3.执行存储过程授权
GRANT EXECUTE ON test.* TO 'wtc'@'%';GRANT CREATE ROUTINE,ALTER ROUTINE, SELECT,CREATE, INSERT, UPDATE, DELETE, EXECUTE  ON test.* TO 'wtc'@'%' IDENTIFIED BY '111111'

CREATE ROUTINE : 创建存储过程的权限
ALTER ROUTINE : 修改存储过程的权限

4.删除用户

REVOKE  all ON test.* FROM wtc@'%'


DELETE FROM user WHERE User='user_name' and Host='host_name';

FLUSH PRIVILEGES; 



1 楼 生于菇乡 2011-11-02   GRANT CREATE ROUTINE,ALTER ROUTINE, SELECT,CREATE, INSERT, UPDATE, DELETE, EXECUTE  ON test.* TO 'wtc'@'%' IDENTIFIED BY '111111'

mysql存储过程有select,delete,update权限吗?


热点排行