mysql存储过程、视图等的权限问题

    xiaoxiao2021-03-25  15

    看存储过程定义, DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `DB_U1`.`P1`() /*LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/ BEGIN XXX; END$$ DELIMITER ;有个definer,指定存储过程属于哪个用户,SQL SECURITY指定了调用存储过程的方式,DEFINER 定义着(默认),INVOKER调用者 第一种,如果是以定义着身份执行,默认没问题,如果不是定义着,可以修改:     update mysql.P1 set definer='root@localhost' where db='db_name'; 第二种,如果是另外一个用户执行,需要满足两个条件:     1,调用者具有调用存储过程的权限,2,存储过程拥有者本身具有执行存储过程的权限 第三种,修改存储过程的默认调用者权限,lter procedure P1 sql security invoker,或者创建过程时候指定 以上同样适用于视图,触发器,事件等
    转载请注明原文地址: https://ju.6miu.com/read-300216.html

    最新回复(0)