原文:MySQL中的定義者(definer)的作用

現象:在數據庫遷移之后,調用函數報錯,提示definer不存在。 查了一下,發現函數和存儲過程之類的,本身調用是不存在權限這個概念的。 definer這個值並不會限制函數和存儲過程被調用的權限,但會限制函數和存儲過程訪問數據庫的權限。 函數和存儲過程在訪問數據庫時,會獲取definer用戶對應的數據庫訪問權限。 因為在遷庫后,definer值沒有修改,原數據庫的用戶在新庫中不存在,所以報錯,修改一 ...

2018-02-02 18:11 0 5648 推薦指數:

查看詳情

MySQLDEFINER與SQL SECURITY

今天測試項目時,連接遠程Mysql數據庫項目正常運行,把遠程數據庫拷貝到本地數據庫,項目無法登陸,一直考慮是同步數據庫出了問題。確認幾遍后發現數據沒問題。最后發現是某條sql出現問題指定定義者的用戶不存在。而該sql調用了視圖,最后才發現是視圖權限問題,運行sql報The user ...

Thu May 03 23:30:00 CST 2018 0 3122
mysql修改view的definer

我常用的工具是navicat,但是修改definer不能用工具,只能用命令行; 數據庫遷移到其他服務器上,會報definer錯誤,修改view的definer方法如下(比如把definer改為本地的,要加上select語句): 第一種方法: alter DEFINER = 'root ...

Fri Oct 28 22:23:00 CST 2016 0 2121
修改mysql中所有已經定義到的definer

修改mysql中所有已經定義到的definer? 由於前期在測試庫上開發的緣故,我們經常定義到的definer為`root`@`%`,后來搬移到生產庫上又得改回來,存在着大量的更新,上百個的視圖,函數等一個個改不免太麻煩並且也可能遺漏。如下為總結出的方便修改所有definer的方法,可以直到查漏 ...

Mon Aug 16 21:30:00 CST 2021 1 94
mysql如何修改所有的definer

mysqldefiner是什么,有什么作用? 我們在mysql創建view、trigger、function、procedure、event時都會定義一個Definer=‘xxx’,類似如下: 加紅的部分SQL SECURITY 其實后面有兩個選項,一個 ...

Mon Aug 31 17:10:00 CST 2015 2 27025
mySqlThe user specified as a definer ('root'@'%') does not exist

背景 最近往現場導了個庫,發現功能報錯,一看是視圖報錯,navicat一看,哎呦,直接報錯。The user specified as a definer ('root'@'%') does not exist。 解決辦法 因為視圖的人在創建的時候 他選擇了定義者才能執行。於是當你切換 ...

Tue Dec 03 03:41:00 CST 2019 0 273
mySqlThe user specified as a definer ('root'@'%') does not exist

最近導了個庫,發現功能報錯,一看是視圖報錯,navicat一看,哎呦,直接報錯。The user specified as a definer ('root'@'%') does not exist。 解決辦法 因為視圖的人在創建的時候 解決辦法1 如果你只有當前用戶 ...

Thu Dec 16 19:06:00 CST 2021 0 1664
MySQL DEFINER詳解

前言: 在 MySQL 數據庫,在創建視圖及函數的時候,你有注意過 definer 選項嗎?在遷移視圖或函數后是否有過報錯情況,這些其實都可能和 definer 有關系。本篇文章主要介紹下 MySQL definer 的含義及作用。 1.DEFINER簡單介紹 以視圖為例,我們來看下 ...

Mon Aug 09 22:00:00 CST 2021 0 241
mysql修改definer方法

-- 函數、存儲過程 select definer from mysql.proc; update mysql.proc set definer='billing@%'; -- 定時事件 select DEFINER from mysql ...

Wed Aug 19 19:31:00 CST 2015 0 2448
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM