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執行存儲過程。

 

淘寶、天貓、聚划算,商家短期打造爆款,秒殺、咚咚搶、優惠券,應有盡有,只有您想不到,沒有做不到,開心購呀購(網址:www.kxgba.com,微信小程序搜索:開心購呀購),您的購物好助手!


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM