亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中怎么修改所有的definer

發布時間:2021-08-13 11:24:13 來源:億速云 閱讀:160 作者:Leah 欄目:MySQL數據庫

本篇文章給大家分享的是有關mysql中怎么修改所有的definer,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

mysql中的definer是什么,有什么作用?

先授權一個: grant all on testdb.* to 'user1'@'%' identified by '000000' with grant option;    
然后我們創建一個存儲過程如下:
USE `testdb`;
DROP procedure IF EXISTS `user_count`;
DELIMITER $$
USE `testdb`$$
CREATE DEFINER=`root`@`%` PROCEDURE `user_count`()
 LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL
  SQL SECURITY INVOKER
  COMMENT '' BEGIN select count(*) from mysql.user; END$$
DELIMITER ;

用root帳號登陸:

mysql> use testdb;
Database changed
mysql> call user_count();
+----------+ | count(*) | +----------+ | 3 | +----------+ 1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)
可以正常查詢出來。

我們再用user1進行登陸:

mysql> use testdb;
Database changed
mysql> call user_count();
ERROR 1142 (42000): SELECT command denied to user 'user1'@'localhost' for table 'user'

發現系統報錯查詢不到了,這是因為我們在上述定義的SQL SECURITY值為INVOKER,存儲過程執行過程中會以user1具有的權限來執行,其中調用到了mysql的庫,而我們的user1帳戶只有testdb庫的使用權限,所以會返回失敗。

如果方便修改mysql中所有已經定義到的definer?

現在在mysql涉及的definer有view、trigger、function、procedure、event。我們一個個作介紹。

1.修改function、procedure的definer

update mysql.proc set definer='user@localhost'; -- 如果有限定庫或其它可以加上where條件

4.修改trigger的definer

Flush tables with readlock

<p align="left"  font-size:14px;white-space:normal;background-color:#ffffff;"=""> Unlock tables

以上就是mysql中怎么修改所有的definer,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰镇市| 秦皇岛市| 临朐县| 东光县| 朝阳区| 青海省| 思茅市| 海林市| 云龙县| 儋州市| 黄骅市| 浠水县| 临沧市| 古交市| 桐城市| 昂仁县| 东丽区| 垣曲县| 福建省| 井研县| 宁南县| 长寿区| 渑池县| 琼海市| 新泰市| 五常市| 出国| 大方县| 汝南县| 东阳市| 丹江口市| 肥城市| 大同市| 黄平县| 松阳县| 安国市| 昌乐县| 石狮市| 宕昌县| 奉化市| 阳西县|